专利摘要:
method and device for registering client computing devices for online communication sessions. the present invention relates to the registration of a client computing device (110) for online communication sessions. a registration server (140) receives a message (3) that has a processing token that is unique to the client computing device and a phone number of the client computing device of an sms transit device (short message service) ) (130), which received an sms message (1) which has the client computing device's continuation token (140) and determined the client computing device's phone number for that sms message. the registration server (140) associates the follow-up token and the phone number and stores them in a registration data store (150), which is used to invite users to online communication sessions.
公开号:BR112012025382B1
申请号:R112012025382-4
申请日:2010-09-23
公开日:2021-04-27
发明作者:Arun Matthias;Justin Santamaria;Justin Wood;Joe Abuan;Jeremy Brown;Patrick Gates;Natthew Klahn;Andrew H. Vyrros;Braden Thomas;Drew Yao
申请人:Apple Inc;
IPC主号:
专利说明:

Cross Reference to Related Orders
[001] This application claims priority to US Patent Application No. 12 / 886,479, filed on September 20, 2010, and it also claims the benefit of US Patent Application No. 61 / 382,479, filed on September 13, 2010. 2010, Provisional Orders of US No. 61 / 378,924 and 61 / 378,926, each of which was deposited on August 31, 2010, Provisional Application of US No. 61 / 351,814, filed on June 4, 2010, and Orders Provisional US No. 61 / 321,865 and 61 / 321,866, each deposited on April 7, 2010, each of which is incorporated herein by reference.
[002] This request may include the matter related to the copying Provisional Order granted No. US 61 / 321,832, filed on April 7, 2010, and is entitled: Apparatus and Method For Inviting Users to Online Sessions, which is incorporated into reference to this document.
[003] The invention to be described and claimed in that application was prematurely, and without Apple's authorization, described to the public when an Apple iPhone 4 prototype was apparently stolen from an Apple engineer on March 25, 2010. The application of US priority, on which this order is based, was not filed before the apparent theft. BACKGROUND Field
[004] Modalities of the invention refer to the field of computer networks; and more specifically the registration of client computing devices for online communication sessions. Background
[005] Many deployments to provide online communication sessions (for example, instant messaging, video conferences, etc.) require users of computing devices to install software and / or register for the service. Thus, as a prerequisite for a user to establish an online communication session with another user, users must be registered and / or have the same software installed. Many deployments also maintain a presence (for example, a friend list) that allows users to determine the status of other users (for example, online, offline, away, etc.).
[006] Large public networks, such as the Internet, often have connections to smaller private networks, such as those maintained by a corporation, Internet service provider, or even individual families. By their nature, public networks must have a common agreement on the allocation of network addresses, that is, public addresses. For a variety of reasons, private network maintainers often choose to use private network addresses for private networks that are not part of the common allocation agreement. Thus, in order for network traffic from the private network to cross the public network, some form of private / public network address translation ("NAT") is required.
[007] A device that performs NAT operations changes the data packets that are being sent from the private network to comply with the addressing scheme of the public network. In particular, the network address translator replaces the original private address and port number of a packet with its own public address and an assigned port number. A network address translator also changes the data packets that are received by computers on the private network to replace the public destination address and port number with the correct private address and port number of the intended receiver. As used herein, the term address should be constructed to include both an address and a port number, if appropriate in the context, as understood by elements of ordinary skill in the art.
[008] NAT has become increasingly common in modern network computing. An advantage of NAT is that it slows down the decrease in the address space of the public network. For example, TPC / IP addressing, which is used on the Internet, comprises four strings of three digits each, thus providing a finite address space. In addition, certain portions of that address space are reserved for particular uses or users, further decreasing the actual number of addresses available. However, if NAT is used, a private network or subnet can use an arbitrary number of addresses, and still present only a standardized public address unique to the outside world. This makes the number of available addresses practically limitless, because each private network can, in theory, use exactly the same private addresses.
[009] An advantage provided by NAT is the increased security resulting from the fact that elements on the public network cannot determine the current (ie, private) network address of a computer on a private network. This is because only the public address is provided on the public network by the network address translator. In addition, this public address can correspond to any number of computers on the private network.
[0010] Different types of NAT employ different levels of security. For example, with a "full cone NAT", since an internal address (iAddr: iPort) is mapped to an external address (eAddr: ePort), any external host can send packets to iAddr: iPort by sending packets to eAddr : ePort. With a "restricted cone NAT", an external host with an hAddr address can send packages to iAddr: iPort by sending packages to eAddr: ePort only if iAddr: iPort has previously sent a package to hAddr. The port of the external hosting is irrelevant. With a "port restricted cone NAT", an external host that has an hAddr: hPort address / port can send packets to iAddr: iPort by sending packets to eAddr: ePort only if iAddr: iPort has previously sent a packet to hAddr: hPort. Finally, with Symmetric NAT, each request from the same iAddr: iPort to a specific destination IP address and port is mapped to a unique eAddr: ePort. If the same internal host sends a packet to a different destination, a different external address and port mapping is used. Only an external hosting that receives a package from an internal hosting can send a package back to the internal hosting.
[0011] Peer computing ("P2P") refers to a distributed network architecture that comprises computing nodes that make a portion of its resources directly available to other network participants. The points in a P2P network establish direct communication channels with each other and act as both clients and servers, in contrast to the traditional client-server model in which servers provide resources and clients consume resources.
[0012] The NAT operations described above give rise to numerous problems for P2P connections. For example, establishing a direct connection between two points becomes increasingly difficult if one or both of the points are located behind one or more of the types of NAT described above. This problem is exacerbated by the fact that client devices such as the Apple iPod Touch®, Apple iPhone®, Apple iPad® and several other devices (for example, RIM Blackberry® devices, Palm Pre® devices, etc.) are often moved between networks that have different NAT deployments. For example, the Apple iPhone® can communicate over Wi-Fi networks (for example, 802.11b, g, n networks); 3G networks (for example, networks of the Universal Mobile Telecommunications System ("UMTS"), High Speed Uplink Packet Access networks ("HSUPA") etc.); and Bluetooth networks (known as personal area networks ("PANs")). Future client devices will be able to communicate on additional communication channels such as WiMAX, Advanced International Mobile Telecommunication ("IMT"), and Advanced Long Term Evolution ("LTE"), to name a few.
[0013] Hands-free units (for example, headsets, car kits) are typically used to pair with a computing device with hands-free services. For example, a computing device that includes cell phone functionality is common to include the ability to pair with a handsfree unit that acts as an auditory relay between the handsfree unit and the computing device. SUMMARY
[0014] A method and apparatus for automatically registering a client computing device ("client device") (for example, a workstation, a laptop, a palmtop, a mobile phone, a smartphone, a multimedia phone, a computer of the tablet type, a portable media player, a GPS unit, a game system, etc.) for online communication sessions (for example, P2P videoconferences, P2P instant messages, etc.) is described. In one embodiment, under an event on a computing device (for example, powering up the computing device), the client device automatically initiates a registration process for online communication sessions. The automatic registration process includes the client device that transmits an SMS message (short message service) with an identification token (for example, its follow-up token (pass on) token of continuity) to a transit device. SMS (for example, an SMS communication port or an SMS aggregator). The identification token uniquely identifies a client device and in one embodiment, it is a follow-up token that can contain information that allows a follow-up notification service to locate the client device. The identification token in the continuation notification service modality is also used as a way of establishing confidence that a particular notification is legitimate. In other embodiments, any registration or mapping of client devices to unify tokens can be used to associate identification tokens with client devices and provide a reliable method of associating the identity of the client device with a uniquely identified token.
[0015] The SMS transit device determines the phone number of the client device (for example, by examining the SMS message header) and transmits an IP (Internet Protocol) message to a registration server with the identification token and the phone number. The registration server generates a signature based on the identification token and the phone number, and transmits it to the SMS transit device for delivery to the client device. The SMS transit device transmits an SMS message to the client device that includes the signature, identification token, and telephone number. The client device then transmits an IP message to the registration server with the signature, identification token, and telephone number. The registration server validates the information from the client device and stores an association between the identification token and the phone number in an online communication session registration data store. Together, the associated pair of the identification token and the phone number uniquely identify the device in an online communication session network.
[0016] After the client device has been registered, a user on the client device can initiate and / or accept an invitation to an online communication session (for example, video chat / conference session, instant messaging session, etc. ). In one embodiment, the phone number of a client device is used as an online communication session endpoint identifier for an online communication session. As an example, a user on a client device can invite other user (s) on other client device (s) to participate in an online communication session using their phone numbers. In some embodiments, the client device does not natively recognize its own phone number. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The invention can be better understood by reference to the following description and accompanying drawings which are used to illustrate the modalities of the invention. In the drawings:
[0018] figure 1 is a data flow diagram that illustrates the registration of a client device for online communication sessions according to a modality;
[0019] figure 2 is a block diagram illustrating the client device of figure 1 in more detail according to an embodiment;
[0020] figure 3 is a block diagram that illustrates the record server in figure 1 in more detail according to an embodiment;
[0021] figure 4 is a flow diagram that illustrates exemplary operations for registering a client device for online communication sessions according to a modality;
[0022] figure 5 illustrates an exemplary record data store according to an embodiment;
[0023] figure 6 illustrates a general mode topology of a mode;
[0024] figure 7 is a data flow diagram that illustrates the establishment of an online communication session between client devices according to a modality;
[0025] figure 8 is a block diagram illustrating an exemplary retransmission service according to an embodiment;
[0026] figure 9 illustrates a modality of an API architecture according to a modality;
[0027] figure 10 illustrates an exemplary record data store according to an embodiment;
[0028] figure 11 illustrates an exemplary NAT compatibility table according to one modality;
[0029] figure 12 illustrates an exemplary client device and a graphical user interface that is used for the transition between switched circuit calls and video calls according to some modalities;
[0030] figure 13 illustrates the client device of figure 12 that requires a video display according to a modality;
[0031] figure 14 illustrates an exemplary client device and graphical user interface that is used to accept or deny video call invitations according to a modality;
[0032] figures 15 and 16 illustrate client devices after transition to a video call according to a modality;
[0033] figures 17 and 18 are flow diagrams illustrating exemplary operations for the transition between a circuit-switched telephone call from audio only to a video call according to a modality;
[0034] figure 19 is a flow diagram illustrating exemplary operations performed on a client device that received a video call rejection message according to a modality;
[0035] figure 20 is a flow diagram illustrating exemplary operations performed on a client device for transition from a video call to a circuit switched call according to a modality;
[0036] figure 21 illustrates a general network topology used to register a client device for online communication sessions using an email address as an online communication session endpoint identifier according to a modality;
[0037] figures 22A to B are flow diagrams that illustrate exemplary operations for registering an email address as an end point of an online communication session according to a modality;
[0038] figure 23 is a flow diagram illustrating exemplary operations for a user who provides initialization of information to register an email address as an online communication session endpoint identifier according to a modality;
[0039] figure 24 illustrates exemplary operations to validate an email address according to one modality;
[0040] figure 25 is a flow diagram that illustrates exemplary operations performed in a registration service when an e-mail address has been validated according to one modality;
[0041] figure 26 is a data flow diagram that illustrates exemplary operations for managing invitations when a user has multiple client devices that are associated with the same online communication session endpoint identifier according to a modality;
[0042] figure 27 is a data flow diagram that illustrates exemplary operations that are performed when a direct P2P connection is feasible according to a modality;
[0043] figure 28 is a data flow diagram that illustrates exemplary operations that are performed when a direct P2P connection is impracticable according to a modality;
[0044] figure 29 is a data flow diagram that illustrates exemplary operations performed when an online communication session ends according to a modality;
[0045] figure 30 is a flow diagram illustrating exemplary operations carried out to transfer an online communication session from a client device to another client device according to an embodiment;
[0046] figure 31 is a flow diagram that illustrates exemplary operations to start and establish an online communication session with multiple users according to a modality;
[0047] figure 32 is a block diagram illustrating a client computing device that interfaces with a hands-free unit according to a modality;
[0048] figure 33 illustrates a client computing device that receives an invitation to a video call, causes a handsfree device to ring, receiving a response indication from the handsfree device, establishing the video call, and routing the audio to the hands-free device according to a modality;
[0049] figure 34 illustrates a client computing device that initiates a video call and performs the audio route for the video call established through a hands-free device according to a modality;
[0050] figure 35 illustrates a client computing device that initiates a responsive video call to receive a call request from a handsfree device according to a modality;
[0051] figure 36 illustrates a client computing device that performs the audio route of a video call established to a hands-free device according to a modality;
[0052] figure 37 illustrates a client computing device that ends a responsive video call to receive a final call request from a handsfree device according to a modality;
[0053] figure 38 is a block diagram illustrating an exemplary computer system that can be used in some fashion; and
[0054] figure 39 is a block diagram illustrating an exemplary data processing system that can be used in some modalities. Detailed Description
[0055] In the following description, numerous specific details are presented. However, it is understood that modalities of the invention can be practiced without these specific details. In other cases, well-known circuits, structures and techniques have not been shown in detail so as not to complicate the understanding of this description. Those skilled in the art, with the included descriptions, will be able to implement the appropriate functionality without undue experimentation.
[0056] References in the specification for "a modalida of", "modality", "an exemplary modality," etc., indicate that the modalities described may include a particular resource, structure, or characteristic, but each modality may not include necessarily the particular feature, structure, or feature. In addition, such phrases are not necessarily referenced to the same modality. In addition, when a particular feature, structure, or feature is described in connection with a modality, it is claimed that it is within the knowledge of elements skilled in the art in making such a feature, structure, or feature in connection with other modalities whether or not explicitly described.
[0057] In the following description and embodiments, the terms "coupled" and "connected", together with their derivatives, can be used. It must be understood that these terms are not intended to be synonymous with each other. "Coupled" is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, cooperate or interact with each other. "Connected" is used to indicate the establishment of communication between two or more elements that are coupled to each other. Automatic Registration for Online Communication Sessions
[0058] A method and apparatus for automatically registering a client computing device ("client device") (for example, a workstation, a laptop, a palmtop, a mobile phone, a smartphone, a multimedia phone, a computer of the tablet type, a portable media player, a GPS unit, a game system etc.) for online communication sessions (for example, P2P videoconferences, P2P instant messages, etc.) is described. In one embodiment, under an event on a computing device (for example, powering up the computing device), the client device automatically initiates a registration process for online communication sessions. The automatic registration process includes the client device that transmits an SMS message (short message service) with an identification token (for example, its follow-up token) and a client device identifier to an SMS transit device (for example, example, an SMS communication port or an SMS aggregator). The identification token uniquely identifies a client device for online communication session messages (for example, invitation requests and accepted invitation messages), and in one embodiment, there is a follow-up token that can contain information that allows a follow-up notification locate the client device. The identification token in the continuation notification service modality is also used as a way of establishing confidence that a particular notification is legitimate. In other embodiments, any registration or mapping of client devices to unify tokens can be used to associate identification tokens with client devices and provide a reliable method of associating the identity of the client device with a uniquely identified token. The device identifier uniquely identifies the client device and is typically based on one or more hardware identifiers (for example, a device serial number, an ICC-ID (Integrated Circuit Card ID) from a SIM card (Identity Module Subscriber) etc.).
[0059] The SMS transit device determines the phone number of the client device (for example, by examining the header of the SMS message) and transmits an IP (Internet Protocol) message to a registration server with the token of identification, device identifier, and phone number. The registration server generates a signature based on the identification token, device identifier, and the phone number, and transmits them to the SMS transit device for delivery to the client device. The SMS transit device transmits an SMS message to the client device that includes the subscription and phone number. The client device then transmits an IP message to the registration server with the signature, device identifier, identification token, and telephone number.
[0060] The registration server validates the information from the client device and stores an association between the identification token and the phone number in an online communication session registration data store. Together, the associated pair of the identification token and the phone number uniquely identify the device in an online communication session network. After the client device has been registered, a user on the client device can initiate and / or accept an invitation to an online communication session (for example, video chat / conference session, instant messaging session, etc.). In one embodiment, the telephone number of a client device is used as the endpoint identifier for an online communication session of an online communication session. As an example, a user on a client device can invite other user (s) on other client device (s) to participate in an online communication session using their number (s) from phone. In some embodiments, the client device does not natively recognize its own phone number.
[0061] Figure 1 is a data flow diagram that illustrates the registration of a client device for online communication sessions according to a modality. Figure 1 includes client device 110, SMS network 120, logging server 140, and IP message data storage 150. Client device 110 (for example, a workstation, a laptop, a palmtop , a computing phone, a smartphone, a multimedia phone, a tablet computer, a portable media player, a GPS unit, a gaming system, etc.) includes the identification token 115 (which can be a token in a modality). Identification token 115 uniquely identifies client device 110 to receive invitation request and invitation acceptance (or rejection) messages, which will be described in greater detail later in this document. Device identifier 117 uniquely identifies the client device and is typically based on one or more hardware identifiers (for example, a device serial number, an ICC-ID (Integrated Circuit Card ID) from a SIM card (Module subscriber identity card), etc.). Client device 110 includes the ability to transmit and receive SMS messages as well as the ability to connect and send / receive IP messages.
[0062] After registering for online communication sessions, customer device 110 can invite and / or accept invitations to online communication sessions. Client device 110 is identified in online communication sessions using an online communication session endpoint identifier. While in one embodiment, the online communication session endpoint identifier is a phone number of the client device 110, in other embodiments, the online communication session endpoint identifier is a different identifier (for example, a user (for example, an Apple ID), an email address, a mailing address, a MAC address, or other identifier).
[0063] The SMS network 120 includes the carrier SMSC (Short Message Service Center) 125 and the SMS transit device 130 (for example, an SMS communication port or an SMS aggregator). Carrier SMSC 125 is a specific computing carrier and receives and delivers SMS messages. For example, carrier SMSC 125 delivers SMS messages sent from the client device 110 to the SMS transit device 130, and delivers SMS messages sent from the SMS transit device 130 to the client device 110. The transit device SMS 130 separates the mobile network and the IP network.
[0064] Registration server 140 registers client devices as client device 110 for online communication sessions. Registering a client device for online communication sessions includes associating a device identification token with the device's phone number (or other online communication session endpoint identifier). The associations between identification tokens and online communication session end identifiers are stored in the online communication session record data store 150.
[0065] Through an event that occurs on the client device 110 (for example, the energization of the client device, an online communication session application (for example, a P2P videoconferencing application, a P2P instant messaging application, etc.) , execution, etc.), the client device 110 initiates a registration process for online communication sessions. In one embodiment, the registration process starts automatically (without user interaction) whereas, in other modalities, the registration process begins after a user chooses to register the client device for online communication sessions.
[0066] In modalities in which the phone number of the client device 110 is used as the end point identifier of the online communication session, and must then be associated with the identification token 115 of the client device 110 in the data storage. register 150, the phone number of the client device 110 must be determined. Since the client device 110 does not natively know its own phone number, in some embodiments, the phone number of the client device 110 is determined via the client device 110 which transmits an SMS message. For example, in operation 1, client device 110 transmits an SMS message with its identification token 115 and device identifier 117 to SMS transit device 130 via carrier SMSC 125. In some embodiments, the SMS message is addressed to a phone number, which can be a standard length number or a short token (a type of phone number that is typically significantly shorter than a full phone number), which is specifically set up for registration online communication session. The phone number to which the SMS message is addressed is stored on the client device (for example, in a carrier package).
[0067] Carrier SMSC 125 receives the SMS message and delivers it to the SMS 130 transit device. The SMS 130 transit device determines the phone number of the client device in operation 2. For example, the SMS device SMS transit 130 examines the SMS message header and determines the phone number of the client device 110. After determining the phone number, the SMS transit device 130 transmits an IP message to the registration server 140 with the number of client device phone 110, identification token 115, and device identifier 117. This is sometimes called a registration request message.
[0068] The registration server 140 receives the IP message from the SMS transit device that includes the phone number of the client device 110, the identification token 115, and the device identifier 117, and creates a signature. The signature can be based on the phone number of the client device 110, the identification token 115, and / or the device identifier 117, and is used for validation purposes (which will be described in more detail later in this document). In some embodiments, a random number is also used when generating the account signature for situations where multiple client devices have the same phone number. Registration server 140 transmits the signature, telephone number, device identifier, and token back to the SMS transit device 130 in operation 5 (for example, in an IP message). This is sometimes called a log reply message.
[0069] The SMS transit device 130 receives the signature, phone number, device identifier, and token from the registration server 140 and generates an SMS message with the signature and phone number to the client device 110. The device SMS transit 130 transmits the SMS message to client device 110 with signature and phone number in operation 6 (via carrier SMSC 125).
[0070] The client device 110 receives and processes the SMS message that includes storing your phone number. Client device 110 transmits an IP message with its identification token 115, device identifier 117, its telephone number, and the signature generated by the registration server to registration server 140 in operation 7. This is sometimes called registration validation request message.
[0071] When using the signature, the registration server 140 validates the data sent by the client device 110. For example, the registration server 140 compares the signature sent by the client device 110 with the signature generated during operation 4. If they are equivalent , then the data is validated. Assuming the data is valid, registration server 140 stores an association between identification token 115 and client device phone number 110 in the online communication session registration data store 150.
[0072] In an alternative modality, instead of determining the phone number of the client device 110 through the transmission of SMS messages, the user of the device is asked to enter the phone number of the client device 110. In these modalities, the client device 110 directly transmits the telephone number of the client device 110 (as input by the user) and its identification token 115 to the registration server 140, which can associate them in the online communication session registration data store 150.
[0073] Figure 5 illustrates an exemplary record data store 150 according to an embodiment. As shown in Figure 5, each of the online communication session identifier records 510 includes an identification token field 520 and a phone number field 525. In some situations, it is possible for a unique phone number to be associated with multiple identification tokens. For example, different client devices can have the same phone number. In such cases, these different client devices must have different identification tokens. In this way, when an online communication session invitation is sent to a phone number associated with multiple identification tokens, an invitation will be transmitted to each device associated with the identification token.
[0074] Figure 2 is a block diagram that illustrates the client device 110 in more detail according to an embodiment. Figure 2 will be described with reference to the exemplary modality of figure 4, which is a flow diagram that illustrates exemplary operations for registering a client device for online communication sessions. However, it should be understood that the operations in figure 4 can be performed by different modalities from those discussed with reference to figure 2, and the modalities discussed with reference to figure 2 can perform operations different from those discussed with reference to figure 4.
[0075] As illustrated in figure 2, the client device 110 includes the online client communication session registration module ("client registration module") 210, the carrier package (s) 215, continuation token 115, device identifier 117, SMS module 220, and the customer online communication session record data store ("customer record data store") 230. The customer record module client 210 controls the registration of client device 110 for online communication sessions. The carrier (s) package (s) 215 includes / includes specific settings for a carrier that includes the phone number for the SMS transit device used for registration (for example, the number for the SMS transit device 130) and other settings (for example, Access Point Name (APN) settings, Multimedia Message Service (MMS) settings, etc.). The SMS module 220 transmits and receives SMS messages. The client record data store 230 stores data related to the online communication session record (for example, the phone number of the client device 110 once determined).
[0076] Referring to figure 4, in block 410, the client registration module 210 detects or receives an event that triggers the registration of the online communication session. Examples of such events include powering up the client device 110, a user who opens an online communication application (for example, a P2P video conferencing application, a P2P instant messaging application, etc.) etc. In some embodiments, the registration process is performed each time the client device 410 is turned on, while in other embodiments, the registration process is carried out the first time the client device 110 is turned on. The flow moves from block 410 to block 415.
[0077] In block 415, the client registration module 210 determines whether there is a valid identification token for the client device 110. If there is no identification token, or the identification token is expired, then the flow moves to block 425 where the alternative action is taken. For example, in modalities using continuation tokens, the client device 110 can initiate a token generation procedure by requesting a continuation token that is generated by a continuation notification service (which is typically remote from the client device 110 ). The follow-up notification service generates a follow-up token specific to the client device 110 and returns it to the client device 110. If a valid identification token exists, then the flow moves to block 420 in which the client registration module 210 accesses identification token 115. The flow moves from block 420 to block 428.
[0078] In block 428, client registration module 210 accesses device identifier 117. The flow then moves to block 430, where client registration module 210 determines the phone number for the device SMS transit used in the registration process. For example, client registration module 210 accesses carrier package (s) 215 to determine the phone number of the SMS transit device. The phone number can be a short code or it can be a standard length number. In this example, the SMS transit device used in the registration process is the SMS transit device 130. The flow moves from block 430 to block 435.
[0079] In block 435, an SMS message that has the identification token 115 and the device identifier 117 is transmitted to the determined number (the SMS transit device 130). For example, client registration module 210 requests that SMS module 220 transmit an SMS message with identification token 115 and device identifier 117 to the given number. The SMS module 220 transmits the SMS message with the identification token to the specified number. The stream moves from block 435 to block 440. The SMS message will be received by carrier SMSC 125, which delivers it to the SMS 130 transit device.
[0080] In block 440, the SMS transit device 130 determines the phone number of the client device 110 based on the received SMS message. For example, the SMS transit device examines the reader of the SMS message, which will include the sender's phone number, which in this case is the client device 110. The stream then moves to block 445 where the SMS transit 130 transmits the phone number of the client device 110, the identification token 115 and the device identifier 117 to the registration server 140 (for example, in a secure IP message). The flow moves from block 445 to block 450.
[0081] Figure 3 is a block diagram illustrating registration server 140 in more detail according to an embodiment. Figure 3 will be described with reference to the exemplary modality of figure 4. However, it must be understood that the operations of figure 4 can be performed by different modalities from those discussed with reference to figure 3 and the modalities discussed with reference to figure 3 can carry out operations different from those discussed with reference to figure 4. As illustrated in figure 3, the logging server 140 includes the 305 server online communication session logging module, which includes the SMS transit interface 310, the signature generator 315, the client device interface 325, the validation module 330, the validation data store 335 and the association module 340. The SMS transit interface 310 receives and sends messages to the SMS transit device 130. For example, the SMS 310 transit interface receives tuples of phone number, identification token and device identifier from the SMS transit interface 31 0 and transmits tuples of phone number, identification token, device identifier and signature (sometimes referred to as "validation tuples") to the SMS 310 transit interface. The client device interface 325 receives and can transmit messages to client devices. For example, the client device interface 325 receives validation tuples from the client devices.
[0082] Referring again to figure 4, in block 450, signature generator 310 generates a signature for the tuple of telephone number, identification token, and device identifier that it received from the SMS 130 transit device. signature will be used to validate the pairing of the phone number and identification token before storing the pair in the record data store 150. In some embodiments, the signature is based on the telephone number, identification token and / or identifier of device (for example, a cryptographic summary is applied to the phone number, identification token and / or device identifier or some portion thereof to generate the signature). In some modalities, the subscription is also based on a random number to consider situations where multiple client devices have the same phone number. The signature generator 310 stores the signature and optionally the phone number, identification token and / or device identifier in the validation data store 325. The flow then moves to block 455, where the transit interface of SMS 310 transmits the signature, telephone number, device identifier and identification token to the SMS 130 transit device. The flow moves from block 455 to block 460.
[0083] The SMS transit device 130 receives the signature, the phone number and the identification token from the registration server 140. In block 460, the SMS transit device transmits an SMS message (via the carrier SMSC 125) with signature and phone number for client device 110. The stream then moves to block 465.
[0084] In block 465, the SMS module 220 receives the SMS message with the signature and the phone number and stores the signature and the phone number in the customer record data store 230. The flow then goes moves to block 470, where client registration module 210 transmits an IP message to the registration server with its telephone number, identification token 115, device identifier 117 and signature. The flow then moves to block 475.
[0085] The client device interface 325 receives the phone number, the identification token, the device identifier and the signature of the client device. The information is passed to the validation module 330 which determines whether the data is valid in block 475. For example, the same summary function as that applied when generating the signature is used in the phone number, identification token and / or identifier of devices received from the client device and the validation module 330 compares the result with the signature that was previously generated (stored in the 335 validation data store). If the signatures match, then the data is valid and the flow moves to block 480.
[0086] In block 480, the association module 330 of the registration server 140 stores an association of the client device's phone number and the identification token of the client device in the registration data store 150. In some embodiments, the registration server registration 140 may transmit a registration status message to client device 110 alerting client device 110 if the registration was successful.
[0087] After the client device has been registered, a user on the client device can initiate and / or accept an invitation to an online communication session (eg, video chat / conference session, instant messaging session etc.). For example, a user on a client device can invite another user (s) on another client device (s) to participate in an online communication session using their ( s) phone number (s). In some embodiments, the client device does not originally know its own phone number. Although the modalities have described the use of SMS messages during registration, in other modalities other types of text messages can be used (for example, MMS (Multimedia Messaging Service)). Registration of E-mail Addresses for Online Communication Sessions
[0088] Although figure 1 has been described in relation to the registration of a telephone number as an identifier of an extreme point of online communication session, in other modalities an email address is used as an identifier of point end of online communication session. Figure 21 illustrates a general network topology used to register a client device for online communication sessions using an email address as an online communication session endpoint identifier. 2110A-N client devices use the 2130 registration service to register for online communication sessions. For example, in one embodiment, the user of a 2110A client device uses the online communication session client 2115 to register an email address for use as an online communication session identifier for online communications over the 2180 network (for example, example, the Internet).
[0089] Figures 22A-B are flowcharts that illustrate exemplary operations for registering an email address as an online communication session endpoint identifier according to a modality. Figures 22A-B will be described with reference to the exemplary modality illustrated in figure 21. However, it should be understood that the operations of figures 22A-B can be performed by different modalities from those discussed with reference to figure 21, and the modalities discussed with reference to figure 21 can perform operations different from those discussed with reference to figures 22A-B.
[0090] In operation 2210, the registry service 2130 receives an authentication request from the client device 2110A. For example, with reference to figure 23, which describes exemplary operations for a user providing initialization information, in operation 2310, the online communication session application 2115 is started on the client device 2110A. The stream then moves to operation 2315 and the client device 2110A receives user input including a user ID and password and one or more email addresses to register for use as endpoint identifier (s) online communication session. The stream then moves to operation 2320 and the client device 2110A transmits the user ID and password to the registry service 2130.
[0091] Although the 2110A client device is registering an email address as an online communication session endpoint identifier and may not include telephone functionality, it can send an online communication session invitation using a phone number instead of an email address. In addition to receiving a user ID, password and one or more e-mail addresses to register, in some modalities, the user can also provide information regarding which country and / or region he is currently located in so that the code of the country and / or region code can be used if the user initiates an online communication session to a phone number that does not include a country code and / or region code. For example, in the United States, a local phone call can be placed using 7 digits (thus, country code and region code are not required). The underlying telephone system automatically determines the country and region code and completes the call. However, in cases where the 2110A client device does not include telephone functionality, the 2110A client device cannot rely on the underlying phone system to automatically include the country code and / or region code when inviting a user to a session online communication using a phone number that does not include the country code and / or region code.
[0092] In operation 2320, the client device 2110A receives the user's input in relation to which country and / or region (for example, area code, state, province, city etc.) in which it is located. The flow then moves to operation 2320 where the client device 2320 associates the corresponding country and / or region phone codes with the online communication session application 2115 for use if the user initiates a communication session. online to a phone number that does not include a country and / or region code. For example, if the user indicates that the user is located in the United States and the user invites a user to an online communication session using a 10-digit phone number that does not include the country code, the 2110A client device automatically adds the country code for the United States to the phone number.
[0093] Referring again to figure 22A, after receiving the authentication request from the client device 2110A, an authentication process is performed using the provided username and password. In one embodiment, the registry service 2130 performs the authentication process while in another embodiment, the user directory service 2160 performs the authentication process. The 2160 user directory service is a centralized service that provides user account, authentication and other services. The 2160 user directory service manages 2165 user recordings. In one embodiment, each authenticated user is associated with a user record that includes various information (for example, one or more of a user ID, password, postal address, phone number, name, birthday, country, a list of email addresses associated with the user (which can also indicate whether the email address is validated) etc.). If authentication is successful, then the flow moves to operation 2216. If authentication fails, then the flow moves to operation 2214 and an alternative action is taken (for example, the registry service 2130 transmits a message of error for client device 2110A which indicates that the username and / or password is not correct).
[0094] In operation 2216, the registration service 2130 generates and / or accesses an online communication session profile associated with the user ID. For example, the 2130 registration service may include a 2140 online communication session account server that manages 2150 online communication session profile recordings. In one embodiment, each user who is registering or is registered for online communication sessions has a corresponding online communication session profile recording. Each online communication session profile recording can include a set of one or more email addresses, including their validation status, which are associated with the profile. Each online communication session profile recording can also include one or more follow-up tokens that correspond to one or more client devices respectively that are registered for online communication sessions. Each profile recording can also include profile credentials to validate certain communications from client devices. Each profile recording can also indicate which client devices (as indicated by tracking tokens) have registered or are attempting to register which email addresses.
[0095] The flow moves from operation 2216 to operation 2218 and the registry service 2130 transmits an authentication response to the client device 2110A that includes the profile ID (for example, a string that identifies the profile associated with the ID provided) and profile credentials. The authentication response can also indicate that the authentication was successful. The stream then moves to operation 2220 and the registry service 2130 receives an email validation request from the client device 2110A that includes one or more email addresses to validate the profile ID, profile credentials and the client device continuation token 2110A. The email validation request message may also include the device ID of the 2110A client device. The registry service 2130 then determines whether the profile credentials are valid for the profile ID in operation 2222. If they are not, then the flow moves to operation 2224 and an alternative action is taken (for example, the logging service 2130 transmits an error message to the client device 2110A). If the profile credentials are valid, then the flow moves to operation 2223. In operation 2223, the registry service 2130 associates the continuation token with the profile. For example, the online communication session account server 2140 stores the tracking token in the profile recording for the user.
[0096] The flow then moves to operation 2226 and the registration service 2130 determines whether the email address is validated. A validated email address is an email address that has been validated as belonging to the user request that is requesting it to be registered for use as an online communication session endpoint identifier. The online communication session account server 2140 accesses the 2150 user profile recording to determine whether the email address is validated. If the profile recording does not indicate that the email address is validated, in some ways, the 2130 registration service transmits an email address validation request to the 2160 user directory service to determine whether the user recording 2165 to the user indicates that the email address is validated. If the e-mail address is not validated, then the flow moves to operation 2227 and the registration service 2130 causes a validation e-mail message to be sent to the e-mail address that includes a link that , when selected (or when entered in an Internet browser), causes the email address to be validated. For example, selecting the link causes an email address validation message to be sent that includes the email address and a validation token that are used to validate the email address. The 2130 registration service can also transmit an e-mail address needs validation message to the client device which indicates that the e-mail address is not validated (and thus needs to be validated) and can also indicate that a message validation e-mail address has been sent to the e-mail address in question. The flow then moves to operation 2410, which will be described with reference to figure 24. However, if the email address is validated, then the flow moves to operation 2228.
[0097] In operation 2228, the registration service 2130 transmits a validated email address success message to the 2228 client device that indicates that the email address has been validated. The flow then moves to operation 2230 and the registration service 2130 receives an activation email request from the 2228 client device that includes the email address, profile ID and profile credentials. The registry service 2130 then determines whether the profile credentials are valid for the profile ID in operation 2232. If they are not, then the flow moves to operation 2224 and an alternative action is taken (for example, the logging service 2130 transmits an error message to the client device 2110A). If the profile credentials are valid, then the flow moves to operation 2240.
[0098] In operation 2240, the registration service 2130 generates or accesses the e-mail credentials for the e-mail address. For example, in one embodiment, the online communication session account server 2140 stores the email credentials for each validated email address of a user in this 2150 user profile recording. The stream then moves into operation 2242 and the 2130 registration service transmits an activation success message to the 2110A client device that includes the e-mail address and e-mail credentials.
[0099] The flow moves from operation 2242 to operation 2244 and the registration service 2130 receives a registration request message that includes the e-mail address, e-mail credentials, profile ID, profile credentials , the client token for the 2110A client device, and the device ID for the 2110A client device. In one embodiment, the request message is received in the online communication session 2145 logging server. The online communication session logging server manages the online communication session 2155 log data storage. The online communication session data storage registration number 2155 associates a follow-up token (and optionally the device ID) to the profile that has a set of one or more e-mail addresses as an online communication session endpoint identifier (s). Thus, each recording in the communication session record data store 2155 represents that a particular device with a particular follow-up token is using an online communication session profile that has one or more email addresses that can be used to invite a user on that device for an online communication session. The flow moves from operation 2244 to operation 2246.
[00100] In operation 2246, the registration service 2130 (for example, the online communication session registration server 2145) determines whether the profile credentials are valid. If these are not valid, then the flow moves to operation 2250 and an alternative action is taken (for example, the registry service 2130 transmits an error message to the client device 2110A). If these are valid then the flow moves to operation 2248 and the registration service 2130 (for example, the online communication session registration server 2145) determines whether the email address credentials are valid. If these are not valid, then the flow moves to operation 2250. If these are valid, then the flow moves to operation 2252.
[00101] In operation 2252, the registration service 2130 (for example, the online communication session registration server 2145) associates the client device 2110A with its continuation token with the profile that has the e-mail address and stores the association in the log data store 2155. The stream then moves to operation 2254 and the log service 2130 generates an online communication session account identifier and online communication session credentials and transmits them to the 2110A client device on operation 2256.
[00102] There are different ways to validate e-mail addresses in different ways. Referring to figure 24, which is a flow chart illustrating exemplary operations to validate an email address, in operation 2410, the client device 2110A determines whether to include an email client that includes an account for an email address that it tried to register and did not receive a positive validation email. If you do not include such an email client, then the flow moves to operation 2440, otherwise the flow moves to operation 2415.
[00103] In operation 2415, the e-mail account is automatically checked periodically for a validation e-mail message (for example, the validation e-mail message transmitted in operation 2227). In one embodiment, the online communication session application 2115 periodically requests the e-mail client 2120 to verify the validation e-mail message (the e-mail client 2120 can name the e-mail server 2170 to verify the e-mail message validation method). The validation email message is identified by a set of one or more criteria including the From :, To: field, and a validation token (the validation token can be unique for each email address being validated) that is used to validate the email address. The validation token can be located in the reader or in the body of the validation email. If the validation email message is received, then the flow moves from operation 2420 to operation 2425, otherwise the flow moves to operation 2435.
[00104] In operation 2425, the validation e-mail message is returned to the online communication session application 2115 and it analyzes the message to locate the validation token. After locating the validation token, the online communication session application 2115 transmits an email address validation message to the 2130 registration service with the validation token, email address, profile ID and credentials in profile. Thus, in this modality, the e-mail address is automatically validated without requiring the user to click on a link or otherwise validate the e-mail address. In one embodiment, after receiving the message and determining that the profile credentials are valid, the 2130 registration service transmits a validated push email message (via the 640 follow-up notification service) to the device indicating that the e-mail address has been successfully validated. Thus, the flow moves from operation 2425 to operation 2430 and the client device 2110A expects to receive the message validated by email address push.
[00105] If a validation email message has not been received, then the flow moves to operation 2435 where the client device determines whether an email validated push message has been received that indicates that the email address that trying to be registered has been validated. If such a message is received, then the flow moves to operation 2445, otherwise the flow moves back to operation 2415.
[00106] In operation 2440 (the 2110A client device does not include an email client that includes an account for the email address being registered), the 2110A client device waits to receive a validated email push message that has been received which indicates that the email address you are trying to register has been validated. If such a message is received, then the flow moves to operation 2445, otherwise the flow remains in operation 2440.
[00107] In operation 2445, the client device 2110A displays that the e-mail address has been validated and consults the user to continue the registration process with that e-mail address. If the 2110A client device receives an entry indicating to proceed with the registration process, then the flow moves to operation 2455 and the 2110A client device transmits an activation email request that includes the email address, ID profile and profile credentials for the logging server. The operations described starting at operation 2230 of figure 22 are then carried out. If the 2110A client device receives an entry indicating that the user does not want to proceed with the registration process, then the flow moves from operation 2450 to operation 2460 and the process is terminated.
[00108] Figure 25 is a flowchart that illustrates exemplary operations performed in the registration service when an e-mail address has been validated according to one modality. In operation 2510, registration service 2130 receives a validated e-mail address status message that indicates that an e-mail address that is associated with an online communication session profile has been validated. The validated email address status message may have been received as a result of the 2425 operation or validated email address status message from the email address being validated in a different way (for example, a user clicking on a validation link in a validation email message that causes the email address to be validated, which can be sent on a device other than the device trying to register the email address for use in online communication sessions ).
[00109] The flow then moves to operation 2515 and the registry service 2130 updates the validation status for the email address in the 2150 profile recordings. The flow then moves to operation 2515 and the 2130 registration service determines whether there are any client devices that are associated with the online communication session profile that asked to validate the email address that did not receive a valid email address message. For example, the registration service 2130 turns on the profile recording 2150 for the online communication session profile to determine which client devices (for example, as identified by unique tracking tokens) asked to validate the email address and which did not received a validated e-mail message to that e-mail address. For each such client device, the registration service transmits a validated email push message to that client device that includes the profile ID, profile credentials and the email address that was validated in operation 2525. The validated message by e-mail push may also include a status update to indicate that the e-mail address has been validated. If there is no device that asked to validate the email address that did not receive a valid email address message, then the flow moves to operation 2530 and the process is terminated. Establishing Online Communication Sessions
[00110] As illustrated in figure 6, a general network topology deployed in a modality can include several client devices AN, 670A-N, respectively, communicating with each other and with one or more services 610, 620, 630, 640 and 650 over a 660 network. Although illustrated as a single network cloud, the 660 network can include a variety of different components including public networks such as the Internet and private networks such as local Wi-Fi networks (for example, wireless networks home 802.11n or wireless access points), local area Ethernet networks, cellular data networks (for example, 3G, 4G, Edge, etc.) and WiMAX networks, to name a few. 670A-N client devices can connect to the 660 network through different network links. For example, the 670A client device can be connected to a home Wi-Fi network represented by the 675A network link and the 670N client device can be connected to a 3G network (for example, Universal Mobile Telecommunications System ("UMTS"), High Speed Uplink Packet Access ("HSUPA") etc.) through the 675N network link. Each of the 675A-N network links through which the 670A-N client devices are connected can be coupled to a public network such as the Internet via a port and / or NAT device (Network Address Translation) (not shown in figure 6), thereby allowing communication between the various 670A-N client devices over the public network. However, if two client devices are on the same local or private network (for example, the same Wi-Fi network), then the two devices can communicate directly through that local / private network, bypassing the public network. It should be noted, of course, that the underlying principles of the invention are not limited to any set of particular network types or network topologies.
[00111] Each of the 670A-N client devices can communicate with a connection data exchange service (CDX) 610, an invitation service 620, a registration service 630, a continuation notification service 640 and a service relay 650. In one embodiment, services 610 to 650 can be deployed as software that runs through one or more physical computing devices such as servers.
[00112] In one embodiment, the CDX 610 service operates as a central point of exchange for the connection data required to establish online communication sessions between two or more client devices. In particular, a modality of the CDX 610 service generates NAT pass data (sometimes referred to as "Drilling" data) in response to client device requests to allow clients and external services to communicate over the NAT of each client device (that is, "drill" through NAT to reach the device). For example, in one mode, the CDX service detects the port and external IP address needed to communicate with the client device and provides this information to the client device. In one embodiment, the CDX service also receives and processes lists of client devices generated by the 620 invitation service and efficiently and securely distributes connection data to each of the client devices included in the lists (as described in detail below).
[00113] Users of 670A-N client devices use the 620 invitation service to invite users to participate in collaborative online communication sessions (eg, P2P video conference, P2P instant message conference / chats, etc.). For example, a 670A client device user requests an online communication session with one or more users from one or more different client devices by transmitting an invitation request to invitation service 620 that includes a session endpoint identifier online communication of each of the other users. The online communication session endpoint identifier can be different in different ways (for example, a phone number, a username (for example, an Apple ID), an email address, a postal address, MAC address or other identifier). The invitation service 620 reads the online communication session endpoint identifier (s) from the invitation request and performs a search on the registration data store 655 to locate the client device (s) ( s) that is (are) associated with the online communication session endpoint identifier (s).
[00114] 670A-N client devices use the 630 registration service to register for online communication sessions. For example, in one embodiment, when each of the 670A-N client devices is turned on and activated on the network, this causes its identification token (for example, its follow-up token) to be associated with an endpoint identifier. online communication session. Associations are stored in the 655 registration data store. In one embodiment, the 670A-N client devices register for participation for the online communication session service using the 630 registration service as described with respect to figure 4, while in other modalities the registration process takes place differently (for example, providing both your follow-up token and your online communication session endpoint identifier).
[00115] The follow-up notification service 640 uses the follow-up tokens from the 670A-N client devices to transmit push notifications to the 670A-N client devices. In one embodiment, push notifications are used to transmit invitations to online communication sessions. The 650 relay service establishes online communication session connections between client devices when the NAT types of the client devices are not supported or the P2P connection failed between the client devices.
[00116] In one embodiment, the communication between the client devices and the CDX 610 service is established using a relatively light network protocol such as User Datagram Protocol ("UDP") sockets. As is known to those skilled in the art, UDP socket connections do not require signaling dialogs to guarantee packet reliability, classification, or data integrity, and therefore do not consume as much packet processing overhead as TCP socket connections. Consequently, the stateless and lightweight nature of UDP is useful for servers that answer small queries from a vast number of clients. In addition, unlike TCP, UDP supports packet broadcast (where packets are sent to all devices on a local network) and multicast (where packets are sent to a subset of devices on the network) package). As described below, although UDP can be used, security can be maintained in the CDX 610 service by encrypting NAT pass-through data using session keys.
[00117] In contrast to the light and low overhead network protocol used by the CDX 610 service, in one embodiment, the communication between the 670A-N client devices and the invitation service 620, registration service 630, service notification continuation 640 and / or the relay service 650 is established with an inherently secure network protocol such as Secure Hypertext Transfer Protocol ("HTTPS"), which is based on Secure Sockets Layer ("SSL") or Security connections Transport Layer ("TLS"). The details associated with these protocols are well known to those skilled in the art.
[00118] Figure 7 is a data flowchart that illustrates the establishment of an online communication session between client devices according to a modality. In the example in Figure 7, a user on client device A 710 invites a user on client device B 720 for an online communication session (for example, a P2P video conference, a P2P instant messaging system, etc.). In this example, the client device A 710 is sometimes referred to as a initiating client device, the user of the client device B 720 is sometimes referred to as a intended container, and the client device B 720 is sometimes referred to as a recipient client device. destined. In some modalities, an online communication session invitation is a blind invitation with no presence. For example, the user on the client device A 710 does not know whether the user on the client device B 720 is currently online or available to participate in the online communication session.
[00119] While the modalities described with reference to figures 6 and 7 are exclusive to use token of continuation and push notifications, other modalities are not so limited. For example, in other embodiments, any registration or mapping of client devices to unique tokens can be used to associate identification tokens with client devices and to provide a reliable method of associating the identity of the client device with a uniquely identified token.
[00120] In operation 1, the client device A 710 requests its connection data from the exchange of connection data 610. The connection data includes information for the client devices to exchange with each other to establish a communication session online (for example, a P2P session). The connection data includes the IP address of the client device (for example, the public IP address), the port number of the request, and other information (for example, priority information, etc.). The 610 connection data exchange determines the connection data of the A 710 client device (for example, public / private IP addresses and ports, NAT type of the device A NAT of the client device). In operation 2, the connection data exchange 610 returns the connection data to the client device A 710.
[00121] In operation 3, client device A 710 transmits an online communication session invitation request to invitation service 620 to invite client device B 720 to an online communication session (for example, a P2P video conference , a P2P instant messaging session, etc.). In one embodiment, the invitation includes A 710 client device connection data, which may include public / private IP addresses and ports for A 710 client device and the NAT type for the client device A NAT device, and an identifier endpoint of online communication session associated with the user on the B 720 client device (for example, a B 720 client device phone number, a user's username (for example, an Apple ID), an address e-mail address, postal address, MAC address, etc.). The online communication session invitation request can take the form of an HTTPS request and can include a client certificate signed by a pre-specified certificate authority.
[00122] In operation 4, the invitation service 620 determines the token (s) per push associated with the online communication session endpoint identifier included in the operation request 3. For example, the invitation service 620 accesses the registration data store 655 to determine the push token (s) that are associated with the online communication session endpoint identifier. As shown in figure 7, the continuation token 725 is assigned to the client device B 720 and thus, it is associated with its online communication session endpoint identifier. Figure 10 illustrates an exemplary record data store 655 according to an embodiment. As shown in figure 10, each of the 1010 online communication session identifier records includes a continuation token field 1015 and an online communication session identifier field 1020. As shown in figure 10, the same communication session identifier online can be associated with multiple tracking tokens. In such a case, multiple invitations will be transmitted (for example, one per continuation token).
[00123] The invitation service 620 transmits a push request message to the push notification service 640. In operation 5, the push notification service 640 transmits an invitation request for an online communication session, in the form of a push notification message, to client device B 720. The request includes the connection data, the endpoint identifier of the online communication session, and the continuation token of the client device A 710 (the continuation token 715 ). The invitation request can also include information specific to the online communication session to provide the user of the B 720 client device with information about the invitation (for example, the name of the person sending the invitation (for example, username, number, or any combination thereof), that the invitation is for (for example, a P2P video conference, a P2P instant messaging session, etc.) etc.).
[00124] The invitation request for an online communication session will be received and displayed on client device B 720 if it is activated and operated correctly. The invitation request includes a mechanism for the user to accept or deny the invitation (for example, an accept button and a deny button). The user on the A 710 client device can receive a notification if the invitation request is denied. Assuming that a user on the client device B 720 accepts the invitation request, in operation 6 the client device B 720 requests its connection data from the exchange of connection data 610. The exchange of connection data 610 determines the connection data client B 720 device (for example, public / private IP addresses and ports, NAT type of client device B NAT device), and in operation 7, returns the connection data to client B 720 device.
[00125] The client device B 720 then transmits an acceptance message to invitation service 620 in operation 8. The acceptance message includes the connection data of client device B 720 and includes the tokens of client device A 710. A acceptance message can also contain an indication whether it is a repeat of a previous attempt at a direct P2P connection that failed between client device A 710 and client device B 720. The acceptance message can take the form of an HTTPS message .
[00126] In some embodiments, the invitation service 620 determines whether a P2P connection between client device A 710 and client device B 720 is feasible. In operation 9, invitation service 620 determines whether a direct P2P connection between client devices A and B is feasible. For example, in one embodiment, if the acceptance message received from the B 620 client device indicates that it is a repeat of a previous failed direct connection attempt (or a specified number of previous failed direct connection attempts) , then the invitation service 620 may conclude that a direct P2P connection is impractical. To determine feasibility, the invitation service 620 can compare the NAT data type for client devices A and B to determine whether the NAT devices of client devices A and B will support a direct P2P connection. In one embodiment, the acceptance message described above does not include an indication of previous failed attempts. Instead, after a previous failed direct connection attempt, one of the client devices 710 to 720 may transmit a special "relay invitation" request (for example, instead of the invitation request in operation 3 in figure 7) that indicates that a relay connection is required. In response, the invitation service may automatically invoke the retransmission operations described in this document (as described below).
[00127] Certain combinations of NAT types are known to be incompatible for establishing P2P connections. For example, a full cone NAT can be used with any other type of NAT except a closed / firewall-protected NAT to establish a direct P2P connection. In contrast, a symmetric NAT can only be used with a full cone NAT to establish a direct P2P connection. The feasibility of combining several types of NAT in one modality is established in the NAT1110 compatibility table shown in figure 11, in which the columns represent NAT types of a client device (for example, A 710 client device) and the lines represent the NAT types of the other client device (for example, client device B 720). A "1.0" in a cell indicates that the types of NAT in the row and associated column are compatible and a "0.0" indicates that the types of NAT are incompatible.
[00128] If invitation service 620 determines that a direct P2P connection is feasible, then invitation service 620 transmits a push request to push notification service 640 to transmit acceptance of the invitation request. Thus, in operation 10B, the push notification service 640 transmits an online communication session acceptance message, in the form of a push notification, to the client device A 710. The acceptance message includes the connection data, the online communication session endpoint identifier, and the client device 720 token continuation token. The acceptance message will be displayed on client device A 710. Since client devices A and B have each other's connection data, client devices A and B have enough information to establish a direct P2P connection. Thus, in operation 11A, client devices A and B establish a direct P2P connection through the use of exchanged connection data. The direct P2P connection can be established through known mechanisms (for example, through the use of Internet Connectivity Establishment (ICE) or other P2P connectivity mechanisms).
[00129] If, however, invitation service 620 determines which direct P2P connection is impractical, then it transmits the relay request in search operation 10B to relay service 650 to determine one or more relay hosts for client devices A and B to use for the connection. The relay search request can contain network information for client devices A and B (for example, NAT / connection path data and / or NAT data type) that is used by the relay service 650 to select hosts retransmission methods for both client devices.
[00130] As illustrated in figure 8, in one embodiment, the relay service 650 includes a relay search module 805, multiple relay hosts 815A-B, and a relay hosting database 810 that contains network information related to each of the 815A-B relay hosts. While figure 8 illustrates two relay hosts, it should be understood that there may be more or less relay hosts in some modalities. The invitation service 620 transmits a relay search request to the relay search module 805, which queries the relay hosting database 810 using the network information for client devices A and B. Upon receipt From the database results, the relay search module 805 provides a response that identifies the selected relay hosts 815A-B in operation 11B for invitation service 620.
[00131] In one embodiment, the relay search response contains a relay token generated by relay service 650 and the network address (IP addresses / ports) of the selected relay hosts 815A-B to be used by client devices A and B for the relay connection. In one embodiment, the relay token is associated with the relay session and is used by 815A-B relay hosts to authenticate client devices A and B by connecting to relay service 650. The token can take many forms including, For example, unique ID relay session ID code, a digital certificate and / or a unique encryption key associated with the relay session.
[00132] Invitation service 620 transmits a retransmission response to client devices A and B which indicates that a relay connection will be made. In one embodiment, the relay response to client device B may include the relay token and network information for the 815B relay host. In one embodiment, the response to client device B can be sent directly (which exceeds the push notification service 640) because it is being sent in response to the client device invitation B acceptance message. Invitation service 620 also transmits a relay response to client device A, which may include the relay token and network information for relay hosting A 815A. In that case, the response is transmitted to client device A via the push notification service 640.
[00133] In operation 12B, client device A 710 uses network information for relay hosting 815A to establish a connection with relay service 650. Similarly, in operation 13B, client device B 720 uses information network for the 815B relay host to establish a connection to the relay service 650. In each of these transactions, new holes are opened in any NAT firewall of client devices A and B and the NAT / connection path data for client devices A and B can be determined by the relay service 650 and returned to client devices A and B, respectively (for example, by terminating the public IP / port for the devices). In one embodiment, the retransmission service 650 and client devices A and B implement the NAT protocol with Retransmission with Use of Path ("TURN"), which, as understood by those skilled in the art, allows an element behind a NAT or a firewall to receive incoming data over TCP or UDP connections.
[00134] In operation 14B, client device A 710 transmits a relay update to invitation service 620, which is forwarded to the push notification service and transmitted by push to client device B 720 in operation 17B. Similarly, in operation 15B, client device B 720 transmits a relay update to invitation service 620 which is forwarded to push notification service 620 and transmitted by push to client device A 610 in operation 16B. The relay update transmitted by the A 710 client device can include the session token, each device's online communication session endpoint identifier, and the NAT / connection path data determined by the relay service 650.
[00135] In operation 18B and 19B client devices A and B, respectively, establish an online communication session connection via relay service 650. In one embodiment, relay connections can be established when client device A 710 sends the NAT / connection path data from client device B 720 to relay service 650, and vice versa, which thereby allows the relay service to determine the correct path for each relay host in pair 815A-B.
[00136] Through the use of the techniques described above, the invitation service 620 can be deployed as a service without situation monitoring, which is inherently scalable and resilient, even in a large-scale system with a vast number of client devices. For example, because the push notification service 640 is inherently capable of locating and pushing content to registered client devices, the 620 invitation service is not required to track each device's current location. Additionally, due to the fact that devices can transmit NAT / connection path data with requests and responses, the 620 invitation service is never required to maintain any status information per connection, thereby reducing storage and processing requirements. of the invitation service. Such a deployment is particularly useful in a large-scale system.
[00137] While figure 7 describes a user on a client device that invites a single user to an online communication session, the modalities are not so limited. For example, in some modalities, a user on a client device can invite multiple users to an online communication session. For example, the user can transmit a single invitation request message to the invitation service with multiple online communication session endpoints to invite multiple users on different client devices to participate in an online communication session.
[00138] In some situations, a user may have multiple client devices that are associated with the same online communication session endpoint identifier. Figure 26 is a flowchart of data that illustrates the exemplary operations for managing invitations when a user has multiple client devices that are associated with the same online communication session endpoint identifier.
[00139] Client device A (operated by user A) 2610 transmits a request for its connection data from the exchange of connection data 610 in operation 2632. The exchange of connection data 610 returns connection data from client device A in operation 2634. The client device then transmits an online communication session invitation request to invitation service 620 with a user ID B to invite user B to an online communication session (for example, a conference call). P2P video, a P2P instant messaging session, a video call, etc.). The invitation request includes connection data A.
[00140] The invitation service performs a directory search in operation 2638 based on the ID of B included in the invitation request message. In this example, the directory lookup operation returns a continuation token for client device B1 and a continuation token for client device B2. Thus, client devices B1 and B2 are associated with ID B. The invitation service 620 then transmits a push request message in operation 2640 to the push notification service 640 to push the request message from invitations to the client device B1 2615 and to the client device B2 2620. The push notification service 640 transmits an online communication session invitation request, in the form of a push notification message, to the client device B1 2615 on operation 2642 and for client device B2 2620 in operation 2644. Each invitation request message includes connection data from client device A 2610, The online communication session endpoint identifier used by user A, and the continuation token from the client device A 2610. The invitation requests can also include specific information about the online communication session (for example, the name of the person who sends the invitation (for e example, username, real name, phone number, or some combination thereof), and what the invitation is for (for example, a P2P video conference, a P2P instant messaging session, etc.) etc.). Thus, an online communication session invitation request is sent to each of the devices that are associated with the online communication session endpoint identifier included in the original invitation request.
[00141] In one embodiment, the invitation service 620 transmits a status message to the client device that invites to indicate which client device (s) the invitation was transmitted to. Thus, in operation 2646, invitation service 620 transmits an update status invitation to client device A 2610 which indicates that an online communication session invitation request has been sent to client device B1 2615 and client device B2 2620 In one embodiment, client device A 2610 tracks which client devices accept the invitation and keeps other client devices notified of the status of the online communication session.
[00142] In one embodiment, the client device B1 2615 and the client device B2 2620 will display an invitation request if they are activated and capable of receiving the invitation request. In the example illustrated in figure 26, a user on the client device B1 2615 will accept the invitation. Thus, in operation 2648 the client device B1 2615 requests its connection data from the exchange of connection data 610. The exchange of connection data 610 determines the connection data of the client device B1 2615 and in operation 2650 it returns them to the client device B1 2615.
[00143] The client device B1 2615 transmits an acceptance message to invitation service 620 in operation 2652. The acceptance message includes the connection data of the client device B1 2615 and the token of the client device A 2610. The message The acceptance message may also contain an indication of whether it is a repeat of a previous attempt at a direct P2P connection that failed between client device A 2610 and client device B1 2615. In addition, the acceptance message may also include the point identifier end of online communication sessions from A and B and the follow-up token for client device B 2615.
[00144] In some modalities, after receiving an acceptance message to an online communication session, the 620 invitation service determines whether a direct P2P connection is feasible. Thus, in operation 2654, invitation service 620 performs a direct P2P compatibility check to determine whether a direct P2P connection between client device A 2610 and client device B1 2615 is feasible, in a manner similar to that previously described. If the client devices are compatible for a direct P2P connection, then the operations described with reference to figure 27 (starting with operation 2710) are performed. If the client devices are not compatible with a direct P2P connection, then the operations described with reference to figure 28 (starting at operation 2810) are performed.
[00145] Referring to figure 27, which illustrates the operations performed when a direct P2P connection is feasible, in operation 2710 the invitation service 620 transmits a push request to the push notification service 640 to transmit the acceptance of the invitation by client device B1 2615. In operation 2712, push notification service 640 transmits an online communication session acceptance message, in the form of a push notification, to client device A 2610. This acceptance message includes data connection link and the client device B1 2615 follow-up token, and the online communication session endpoint identifier used by user B.
[00146] In one mode, some time after receiving the acceptance message that indicates that the client device B1 2615 has accepted the invitation, client device A 2610 informs client device B2 2620 that client device A 2620 has accepted the invitation. Thus, in operation 2714, client device A 2610 transmits an invitation update request to the invitation service that includes user B's online communication session endpoint identifier and indicates that client device B1 2615 has accepted the invitation. The invitation update request can also instruct or indicate to invitation service 620 which client device associated with user B's online communication session endpoint identifier should receive the invitation update message (in this example, client device B2 2620 should receive the update update message).
[00147] Invitation service 620 performs a directory search 2716 based on user B's online communication session endpoint identifier to determine the continuation token of the B2 2620 client device. After determining the continuation token, the service card transmits a push request in operation 2718 to the push notification service 640 to push the update update message to the B2 2620 client device. In operation 2720, the push notification service 640 transmits a message update update, in the form of a push notification message, to the B2 2620 client device. The update update message indicates that the B1 2615 client device has accepted the online communication session invitation. The B2 2620 client device can display the invitation update message and can maintain the status of the online communication session between client device A 2610 and client device B1 2615 (for example, the duration of the online communication session etc.). As will be described in greater detail with reference to figure 30, in one embodiment, the B2 2620 client device can transmit a transfer request to cause the online communication session to transfer from the B1 2615 client device to the B2 client device. 2620.
[00148] Some time after receiving the invitation acceptance message in operation 2712, client device A 2610 and client device B1 2615 establishes a direct P2P connection through the use of connection data exchanged in operation 2722. The direct P2P connection can be established through known mechanisms (for example, through the use of Internet Connectivity Establishment (ICE) or other P2P connectivity mechanisms). It should be understood that operation 2722 can be performed before or during operations from 2714 to 2720.
[00149] While figure 26 describes an example in which only a single client device accepts the invitation message, in some situations multiple client devices can accept an invitation to an online communication session directed to a single user. For example, the client device B1 2615 and the client device B2 2620 may accept the invitation in some situations. In one embodiment, client device A 2610 establishes an online communication session with the first client device from which it receives an acceptance message. The A 2610 client device can cause a cancellation message to be sent to the other client device (s) (for example, a cancellation message can be transmitted to the invitation service and so transmitted via push, via the push notification service, to the other client device (s)).
[00150] Turning again to operation 2654 of figure 26, if a direct P2P connection is not feasible between the client device A 2610 and the client device B1 2615, then the operations described in figure 28 are performed. Figure 28 is a data flowchart that illustrates the example operations that are performed when a direct P2P connection is impractical. In operation 2810, invitation service 620 transmits a relay search request 2810 to relay service 650 to determine a relay host to be used by client device A 2610 and client device B1 2615. The relay search request it can contain network information for client devices (for example, NAT / connection path data and / or NAT data type) that is used by the relay service 650 to select the appropriate relay hosts for client devices. As shown in Figure 8, a relay service 650 modality includes a plurality of relay hosts 815A-B and a relay hosting database 810 that contains network information related to each of the relay hosts. For example, invitation service 620 transmits a relay search request to a relay service 650, which queries the relay hosting database 810 using network information for client devices. Upon receipt of the search results in the database, the relay service 650 provides a retransmission search response in operation 1201 that identifies the selected relay hosts 815A-B. In one embodiment, the relay search response contains a relay token generated by the relay service 650 and the network address (IP addresses / ports) of the 815A-B relay hosts to be used by client devices to connect to retransmission. In one embodiment, the retransmission token is associated with the retransmission session and is used by the 815A-B relay hosts to authenticate the A 2610 client device and the B1 2615 client device by connecting to the 650 relay service. token can take many forms including, for example, unique ID relay session ID code, a digital certificate and / or a unique encryption key associated with the relay session.
[00151] Invitation service 620 then transmits a retransmission response to client device B1 2615 in operation 2814 which contains an indication that a retransmission connection will be made. In one embodiment, the retransmission response can include the retransmission token and network information for the selected retransmission host for the client device B1 2615. In one embodiment, the retransmission response can be sent directly to the client device B1 2615 (which exceeds the push notification service 640). The invitation service 620 also transmits a relay response to the A 2610 client device in operation 2816 which includes the relay token and network information for the selected relay host for the A 2610 client device. In some embodiments, the response relay is transmitted by push to the mobile device A through the push notification service 640.
[00152] In operation 2818, client device A 2610 then transmits an invitation update request to invitation service 620 that includes user B's online communication session endpoint identifier and indicates that client device B1 2615 accepted the invitation. The invitation update request can also instruct or indicate to invitation service 620 which client device associated with user B's online communication session endpoint identifier should receive the invitation update message (in this example, client device B2 2620 should receive the update update message).
[00153] Invitation service 620 performs a directory search 2820 based on the endpoint identifier of user B's online communication session to determine the continuation token of the B2 2620 client device. After determining the continuation token, the service card transmits a push request in operation 2822 to the push notification service 640 to push the update update message to the client device B2 2620. In operation 2824, the push notification service 640 transmits a message update update, in the form of a push notification message, to the B2 2620 client device. The update update message indicates that the B1 2615 client device has accepted the online communication session invitation. The B2 2620 client device can display the invitation update message and can maintain the status of the online communication session between client device A 2610 and client device B1 2615 (for example, the duration of the online communication session etc.). In one embodiment, the B2 2620 client device can transmit a transfer request to cause an online communication session to transfer from the B1 2615 client device to the B2 2620 client device.
[00154] In operation 2826, client device A 2610 uses network information to use selected relay hosting to establish a connection with relay service 650. Similarly, in operation 2828, client device B1 2620 uses information network for your selected relay hosting to establish a connection with the relay service 650. In each of these operations, new holes can be opened in any NAT firewall of the client devices and the NAT / connection path data for the devices clients can be determined by the relay service 650 and returned to them (for example, by determining the public IP / port of the client devices). In one embodiment, the retransmission service 650 and the client device A 2610 and the client device B1 2615 deploy the NAT relay protocol with the use of a path ("Turn") that, as understood by those skilled in the art, allows an element behind NAT or firewall can receive incoming data over TCP or UDP connections.
[00155] In operation 2830, client device A 2610 transmits a relay update to invitation service 620 which is forwarded to the push notification service in operation 2832 and transmitted by push to client device B1 2615 in operation 2834. Similarly, in operation 2836, client device B1 2615 transmits a relay update to invitation service 620 which is forwarded to push notification service 640 in operation 2838 and transmitted by push to client device A 2610 in operation 2840 The relay update message transmitted by the A 2610 client device may include the relay token, each online communication session identifier, and the NAT / connection path data determined by the relay service 650 in operations 2826 and 2828. In relay update operations are performed since one or more of the c NAT information device can be changed. Finally, in operations 2842 and 2844, client device A 2610 and client device B1 2620 respectively, establish a P2P connection through relay service 650. In one embodiment, relay connections can be established in response to client device A 2610 transmit the NAT / connection path data from the client device B1 2615 to the relay service 650, and vice versa, thereby allowing the relay service 650 to determine the correct path for each point relay host.
[00156] Figure 29 is a data flowchart that illustrates the exemplary operations performed when an online communication session ends according to a modality. In operation 2910, the online communication session between client device A 2610 and client device B1 2615 ended. For example, either the client device A 2610 or the client device B1 2615 ended the online communication session (or the online communication session was otherwise ended). The online communication session may have been through a direct P2P connection or through a retransmission.
[00157] Sometime after the online communication session has ended, in operation 2912, client device A 2610 transmits an online communication session update request to invitation service 620. The online communication session update is sent to notify that the B2 2620 client device, which was not part of the online communication session, about the end of the online communication session. The online communication session update request can include user B's online communication session identifier and can instruct or indicate to invitation service 620 which client device associated with user B (for example, client device B2 2620) should receive the update.
[00158] Invitation service 620 performs a directory lookup operation 2914 based on user B's online communication session endpoint identifier to determine the continuation token of the B2 2620 client device. After determining the continuation token, the invitation service transmits a push request in operation 2916 to the push notification service 640 to push the update message to the client device B2 2620. In operation 2720, the push notification service 640 transmits a message update of the online communication session, in the form of the push notification message, for the B2 2620 client device. The update of the online communication session message indicates that the online communication session between the client device A 2910 and the client device B1 2615 ended.
[00159] Figure 30 is a flow diagram illustrating exemplary operations performed to transfer an online communication session from one client device to another client device according to a modality. In the example illustrated in figure 30, each of the client devices B1 2615 and B2 2620 is considered to have received an invitation to an online communication session originated by the client device A 2610 (each one shares the end point identifier of the online communication session that was used in the invitation) and the client device B1 2615 accepted and established an online communication session with the client device A 2610 (as described in figures 26 and 27 or 28). In addition, the B2 2620 client device received an invitation update that indicates that the B1 2615 client device has accepted the invitation. In the example illustrated in figure 30, the online communication session will be transferred from the client device B1 2615 to the client device B2 2620. For example, a user on the client device B2 2620 has indicated that he wants to command the online communications session between client devices A 2610 and client device B1 2620. In one embodiment, the online communication session application 2115 displays a state of the online communication session between client device A 2610 and client device B1 2615 that allows a user on client device B2 2620 issue an online transfer communication session request (for example, by clicking or pressing a link or virtual button available in the online communication session application 2115 of the client device B1 2615).
[00160] In operation 3010, the client device B2 2620 requests its connection data from the exchange of connection data 610 and receives the connection data requested in operation 3012 (if it does not already know its connection data). The B2 2620 client device then transmits a transfer request message in operation 3014 to invitation service 620 which includes the client device A 2610's continuation token and the B2 2620 client device connection data. The request message The transfer may also include the A and / or B online communication session endpoint identifiers and / or the follow-up token for the A 2610 client device.
[00161] The invitation service 620 then transmits a push request to the push notification service 640 in operation 3016 to cause the push notification service 640 to transmit the transfer message, in the form of a notification of push, to the A 2610 client device. The 620 invitation service also performed a direct P2P compatibility check on operation 3018 to determine whether a direct P2P connection between the A 2610 client device and the B2 2620 client device is plausible. For the purposes of this example, a direct connection is plausible, however, it should be understood that an online communication session transfer can also occur in a retransmission situation.
[00162] In operation 3020, the push notification service transmits the transfer request message to client device A 2610. The transfer request message can include B's online communication session endpoint identifier and the data of connection to the B2 2620 client device. The transfer request message also indicates which device (ie B2 2620 client device) is requesting the transfer of the online communication session (for example, via a device ID and / or token of client device B2 2620). The transfer request message may cause the online device session application 2115 of the client device A 2610 to display the transfer request and may allow the user to accept or deny the transfer request. Considering that the transfer request is accepted, client device A 2610 establishes a direct P2P connection with client device B 2620 using the connection data in the 3030 operation exchanged. It should be understood that at this point the online communication session between the client device A 2610 and client device B1 2615 is active. The A 2610 client device then transmits an online communication session update to the B1 2615 client device which indicates that the online communication session will transfer to the B2 2620 client device. transmitted in the online communication session between client devices. The A 2610 client device then switches to the online communication session with the B2 2620 client device in operation 3026 and ends the online communication session with the B1 2615 client device in operation 3028.
[00163] Although the modalities have been described in reference to the invitation of a single user to an online communication session (which may or may not be associated with multiple client devices), in some modalities, multiple users can be invited to a communication session online. Figure 31 is a flow diagram that illustrates exemplary operations for starting and establishing an online communication session with multiple users.
[00164] The 3110 client device requests its connection data from the 610 connection data exchange in operation 3132 and the requested connection data is returned in operation 3134. In operation 3136, client device A 3110 transmits an invitation request to the invitation service 620 which includes connection data from client device A 3110, an online communication session endpoint identifier associated with user B and an online communication session endpoint identifier associated with user C. Thus, an user on the client device The 3110 is inviting multiple users to an online communication session.
[00165] Invitation service 620 performs a directory search operation 3138 to determine the continuation tokens associated with user B's online communication session endpoint identifier and user C's online communication session endpoint identifier. In this example and for the sake of simplicity, the directory search returns a result from the client device B 3115 which is associated with the endpoint identifier of user B's online communication session and the client device C 3120 which is associated with the endpoint identifier. of user online communication session C. The invitation service 620 then transmits a 3140 push request to the push notification service 640 to request that the push notification service 640 transmit the invitations, in the form of push, for client devices B and C. The push notification service 640 then transmits the invitation bid to the client device. between B 3115 in operation 3142 and transmits the invitation request to client device C 3120 in operation 3144. Each invitation request message includes connection data from client device A 3110, the online communication session endpoint identifier used by user A and the client device A 3110 follow-up token.
[00166] In one embodiment, the invitation service 620 transmits a status message to the client device that invites to indicate to which client device (s) the invitation was transmitted. Thus, in operation 3146, invitation service 620 transmits an update status invitation to client device A 3110 which indicates that an online communication session invitation request has been sent to client device B 3115 and client device C 3120. In one embodiment, the client device B 3115 and the client device C 3120 will display an invitation request if they have been fed and able to receive the invitation request.
[00167] In the example illustrated in figure 31, each of the invitations will be accepted. Thus, in operation 3148, the client device B 3115 requests its connection data from the exchange of connection data 610. The exchange of connection data 610 determines the connection data of the client device B 3115 and in operation 3150 it returns them to the B 3115 client device. Similarly, the C 3120 client device requests its connection data from the 610 connection data exchange in operation 3152. The 610 connection data exchange determines the connection data of the C 3120 client device and in operation 3154 returns them to client device C 3120. Client device B 3115 then transmits an acceptance message to invitation service 620 in operation 3156, and client device C 3120 transmits an acceptance message to invitation service 620 in operation 3158. The invitation service 620 then performs a direct P2P compatibility check 3160 to determine whether a direct P2P connection is plausible between the A 3110 client device and the device client B 3115, and between client device A 3110 and client device C 3120. For the purposes of this example, a direct P2P connection is plausible between client devices. Thus, using the connection data exchanged, client device A 3110 and client device B 3115 establish a direct P2P connection to the online communication session in operation 3162 and client device A 3110 and client device B 3120 establish a direct P2P connection to the online communication session in operation 3164. In this example, the client device A 3110 essentially acts as the host of the online communication session. In this way, the data that is transmitted between the client device B 3115 and the client device C 3120 is retransmitted by the client device A 3110. In other modalities, a complete network of connections is established between the parties. In such an embodiment, another P2P connection would be established between the client device B 3115 and the client device C 3120.
[00168] Although the modalities described in the present invention describe a mechanism for registering client devices for online communication sessions, in some modalities, register 140 may implement an API to allow different applications to register the endpoint identifier of an online communication session and follow-up tokens. The API deployed in a modality is an interface deployed by a software component (hereinafter "software component that implements API") that allows a different software component (hereinafter "software component that performed called a API ") access and use one or more functions, methods, procedures, data structures and / or other services provided by the software component that implements API. For example, an API allows a developer of a software component to perform an API call (which may be a third-party developer) to leverage specified resources provided by a software component that deploys API. There may be a software component that performed an API call or there may be more than one software component. An API can be a source code interface that a system library or computer program provides in order to support calls to services from a software application. An API can be specified in terms of a programming language that can be interpreted or compiled when an application is built, rather than an explicit low-level description of how the data is seated in memory.
[00169] The API defines the language and parameters that the software components that request API use when accessing and using the specified resources of the software component that implements API. For example, a software component that performs an API call accesses the specified features of the software component that implements API through one or more API calls (sometimes called function or method calls) exposed by the API. The software component that deploys the API can return a value through the API in response to an API call from a software component that performed the API call. Although the API defines the syntax and the result of an API call (for example, how to invoke the API call and which API call does this), the API typically does not reveal how the API call performs the function specified by the call to API. Several function calls or messages are transferred through one or more application programming interfaces between the requesting software (software component that performed the API call) and a software component that implements API. Transferring function calls or messages may include sending, initiating, invoking, calling, receiving, returning or responding to function calls or messages. Therefore, a software component that performs an API call can transfer a request and a software component that implements API can transfer a request.
[00170] By way of example, the software component that implements API and the software component that performed the API call can be an operating system, a library, a device unit, an API, an application program or other software module (it should be understood that the software component that implements the API and the software component that is called an API can be of the same or different types of the software module). The software component that performed the API call can be a local software component (that is, in the same data processing system as the software component that implements API) or a remote software component (that is, in a data processing other than the software component that implements API) that communicates with the software component that implements API through the API over a network. It should be understood that a software component that implements API can also act as a software component that performs an API call (that is, it can make API calls to an API exposed by a software component that implements a different API) and a component Software that performed an API call can also act as a software component that implements API by deploying an API that is exposed to a software component that performed a different API call.
[00171] The API can allow multiple software components that perform API calls written in different programming languages to communicate with the software component that implements API (in this way, the API can include resources to translate requests and returns between the component of software that implements API and the software component that carried out called API); however, the API can be implemented in terms of a specific programming language.
[00172] Figure 9 illustrates a modality of an API architecture that includes a software component that deploys API 910 (for example, an operating system, a library, a device unit, an API, an application program or other module. software) that implements API 920. API 920 specifies one or more functions, methods, classes, objects, protocols, data structures, formats and / or other features of the software component that implements API that can be used by the software that performed API 930 call. API 920 can specify at least one calling convention that specifies as a function in the software component that implements API that receives parameters from the software component that performed the API call and how the function returns a result for the software component that performed the API call. The software component that performs API 930 call (for example, an operating system, library, device unit, API, application program, or other software module), performs API calls through API 920 to access and use the features of the software component that deploys API 910 that are specified by API 920. The software component that deploys API 910 can return a value through API 920 for the software component that performed an API 930 call in response to a API call.
[00173] It will be appreciated that the software component that deploys API 910 may include functions, methods, classes, data structures, and / or other additional features that are not specified through API 920 and are not available for the software component that API 930 call is made. It should be understood that the software component that made the API 930 call can be on the same system as the software component that deploys API 910 or can be located remotely and access the software component that deploys API 910 with the use of API 920 over a network. Although figure 9 illustrates a single software component that is called API 930 that interacts with API 920, it should be understood that other software components that request API, which can be written in different languages (or in the same language) as the software component that performed called API 930, can use API 920.
[00174] The software component that implements API 910, API 920 and the software component that performed API 930 call can be stored in a machine-readable medium, which includes any mechanism to store information in a machine-readable form (for example, a computer or other data processing system). For example, a machine-readable medium includes magnetic disks, optical disks, random access memory; read-only memory, quick memory devices, etc. Transition between Circuit Switched Calls and Video Calls
[00175] In some modalities, a client device can transition from a switched call by an audio-only circuit established to a video call without significant interruption of communication between the parties. For example, a portion of an established audio-only circuit-switched call selects to transition to a video call (which includes video and audio frames), which causes a video call initiation message (a form of a online communication session invitation message) is sent to the other participant (s) of the call. If the other participant (s) accepts the video call invitation, a P2P connection will be established between the participant's client devices. While the P2P connection is being negotiated, participants are able to communicate through the switched call via audio-only circuit. After the P2P connection is established and the video is communicated between the parties, the client devices transition to the video call. The switched audio-only call is then ended, and the participants are able to communicate through the video call.
[00176] Figure 12 illustrates an exemplary client device 1210 and a graphical user interface that is used to switch between circuit switched calls and video calls according to some modalities. The client device 1210 includes speaker 1255 (which is used during phone speaker mode), front facing camera 1260 (which captures video used for the video call), microphone 1265 (which captures sound), the receiver / speaker 1270 (which is typically used when a user holds the client device 1210 in their ear during a call), and the display screen 1275 (which is a touch screen in some modes). The 1210 client device can also include a headset / headphone plug, a proximity sensor, an ambient light sensor, accelerometer (s) and other components. It should be understood that the architecture of the client device 1210 is exemplary and different architectures that include more or less components can be used in modalities.
[00177] As shown in figure 12, the graphical user interface 1205 is currently being displayed on the 1275 display screen. The user of the 1210 client device is currently participating in an audio-only phone call (with the phone number (408 ) 555-1234). The 1205 graphical user interface includes several different options for the user during the call. For example, the client device 1210 performs the following responsive to receive user input (for example, knock or other gestures pre-defined in the appropriate icon): ends the call when the entry is applied to the ended call icon 1250, deletes the call sound in response to the input being applied to the mute icon 1220, displays a numeric key block (for example, to add additional phone numbers to the call) in response to the input that is applied to the key block icon 1225, places the call on the phone's speaker in response to the input that is applied to the speaker icon 1230 (which changes the audio output to speaker 1255), adds a call in response to the input that is applied for the addition of call icon 1235, puts the call on hold in response to the entry that is applied to the hold icon 1240, displays the user's contact list in response to the entry that is applied to the contacts icon 1245 and transitions for a video call in response to the input that is applied to the video call icon 1215.
[00178] Figures 17 to 18 are flow diagrams that illustrate exemplary operations for switching between a switched call by audio-only circuit and a video call according to a modality. Figures 17 to 18 will be described with reference to the exemplary modalities of Figures 12, 13 and 14. However, it should be understood that the operations of Figures 17 to 18 can be performed by modalities of the invention in addition to those discussed with reference to Figures 12, 13 and 14, and the modalities discussed with reference to figures 12, 13 and 14 may perform operations different from those discussed with reference to figures 17 to 18.
[00179] As shown in figure 17, the client devices 1210 and 1410 are connected via a switched call by 1710 audio-only circuit (the user of the client device 1210 or the user of the client device 1410 initiated the call). In this way, users of the client device 1210 and 1410 can communicate via the circuit-switched audio call established. In block 1712, client device 1210 receives input to transition to a video call. For example, the user has selected to transition to a video call by tapping or executing another gesture defined in the video call icon 1215.
[00180] The stream then moves to block 1714, in which client device 1210 causes a video call invitation message (which is a form of an online communication session invitation request message) be sent to the client device 1410 (as identified by the phone number of the client device 1410). In some modalities, the online communication session invitation request message is sent using the architecture described in figures 6 and 7. The flow then moves to block 1716.
[00181] In block 1716, client device 1210 determines whether audio is currently being routed through the telephone speaker (for example, speaker 1255) or through the headphone / earphone plug. If so, then the stream moves to block 1720. If not, then the stream moves to block 1718 where the client device 1210 routes the audio through the phone speaker of the client device 1210 (for example , speaker 1255) and the flow moves to block 1720.
[00182] In block 1720, the client device 1210 displays a video preview of what the front facing camera 1260 is currently capturing to allow the user of the client device 1210 to prepare for the video call (for example, for position the client device 1210 appropriately for the video call). Figure 13 illustrates the client device 1210 that displays the video preview 1310 that displays video of what the forward facing camera 1260 is currently capturing. Although not shown in figure 13, in some modalities, a cancel button is also displayed in GUI 1305 that allows the user to cancel the video call invitation. The flow moves from block 1720 to block 1722.
[00183] In block 1726, the client device 1410 receives a video call invitation message that invites the user of the client device 1410 to a video call. The flow moves from block 1726 to block 1728. In some embodiments, client device 1410 has an architecture that is similar to client device 1210. For example, as shown in figure 14, client device 1410 includes speaker 1455 (which is used during the phone's speaker mode), the 1460 forward facing camera (which captures the video used for the video call), the 1465 microphone (which captures sound), the 1470 receiver / speaker (which is typically used when a user holds the client device 1210 on their ear during a call), and the display screen 1475 (which is a touch screen in some modes). The client device 1410 may also include a headset / headphone plug, a proximity sensor, an ambient light sensor, accelerometer (s), and other components. It should be understood that the architecture of the client device 1410 is exemplary and different architectures that include more or less components can be used in the modalities.
[00184] In block 1728, client device 1410 reproduces one or more audio tones that indicate receipt of the message to alert the user about the message. The audio tones can be different in different ways (for example, the audio tones can be similar to the call waiting tones used on the 1410 client device (although they are not originated by the bearer associated with the 1410 client device), the audio tones can be unique and specific to video calls, etc.). In some embodiments, the client device 1410 does not reproduce audio tones that indicate receipt of the video call invitation message if the client device 1410 is not close to the user's ear (for example, as indicated by a proximity sensor of the device). - customer 1410) and / or if the call is currently in the speakerphone mode of the phone. The flow moves from block 1728 to block 1730.
[00185] In block 1730, the client device 1410 displays the video call invitation message and optionally displays a video preview of what the forward facing camera 1460 is currently capturing to allow the user of the 1410 client device to prepare for the video call, and the stream moves to block 1732. Figure 14 illustrates GUI 1405 that displays the video call invitation 1440. As shown in figure 14, the video call invitation 1440 includes a button acceptance button 1432, a deny button 1434 and video preview 1430 (which shows what the forward facing camera 1460 is currently capturing). Although figure 1410 illustrates the video call invitation 1440 that includes the video preview 1430 (that is, the video preview 1430 is contained within the video call invitation 1440), in other embodiments, the pre -1430 video display is located externally and / or is overlapping the 1440 video call invitation. The user of the 1410 client device can select the 1432 acceptance button to accept the video call invitation (for example, by tapping or executing another predefined gesture for entering the accept button 1432) and you can select the denial button 1434 to deny the video call invitation (for example, by tapping or executing another predefined gesture for entering the deny button 1434).
[00186] In block 1732, client device 1410 determines whether the entry was received to accept the video call (for example, if the user accepted the video call invitation by selecting the acceptance button 1432). If the client device 1410 receives the input to accept the video call, then the flow moves to block 1734, otherwise the flow moves to block 1736. In block 1734, the client device 1410 causes a video call acceptance message is transmitted to the client device 1210. In some embodiments, the acceptance message is transmitted to the client device 1210 using the architecture described in figures 6 and 7. The flow then moves for block 1810.
[00187] In block 1736, it is determined whether the entry was received to reject the video call request (for example, if the user rejected the video call invitation by selecting the denial button 1434). If the client device 1410 receives the entry to deny the video call invitation, then the flow moves to block 1738, otherwise the flow moves back to block 1732. In block 1738, the client device 1410 causes a video call denial message to be transmitted to the 1210 client device. The 1410 client device can also clear the 1440 video call invitation and stop displaying the 1430 video preview. In some embodiments, the video call denial message is transmitted to the client device 1210 using the architecture described in figures 6 and 7.
[00188] In block 1722, client device 1210 determines whether it has received a video call acceptance message from client device 1410. If so, then the flow moves to block 1816, otherwise the flow moves to block 1724 where client device 1210 determines whether it received a video call deny message from client device 1410. If so, then the stream moves to block 1910, otherwise the stream moves back to block 1722.
[00189] Referring to figure 18, in block 1810 (the user on the client device 1410 accepted the video call invitation), the client device 1410 determines whether the audio is currently being routed through the telephone speaker ( for example, the speaker 1470) or the headset of the client device 1410. If not, then the stream moves to block 1812 where the audio route is changed from speaker 1455 to speaker from the phone (for example, the 1470 speaker), and the stream moves to block 1814. If the audio is already being routed through the phone’s speaker or a headset, then the stream moves to block 1814.
[00190] In block 1814, client device 1410 displays a video preview of what the forward facing camera 1460 is currently capturing. The operation in block 1814 is performed only if the video preview is not currently being displayed as a result of the operation in block 1730. The flow moves from block 1814 to block 1820.
[00191] In blocks 1818 and 1820, client devices 1210 and 1410 establish a P2P connection with each other. The P2P connection can be established through known mechanisms (for example, using Internet Connectivity Establishment (ICE) or other known P2P connectivity mechanisms). Considering that the P2P connection is successfully established, the flow moves from blocks 1818 and 1820 to blocks 1822 and 1824 respectively, in which the client devices 1210 and 1410 that are transmitting video to each other through the P2P connection (the video from the forward facing video cameras 1260 and 1460). In some modalities, the video includes both video frames and corresponding audio (captured by microphones 1265 and 1465 from client devices 1210 and 1410 respectively), although in other modalities, video and audio are separate streams communicated over the P2P connection.
[00192] The flow moves from blocks 1822 and 1824 to blocks 1826 and 1828 respectively. In blocks 1826 and 1828, client devices 1210 and 1410 respectively determine whether they received one or more video frames from their point. If so, then the flow moves from blocks 1826 and 1828 to blocks 1830 and 1832 respectively. If not, then the stream remains in blocks 1826 and 1828 until one or more video frames are received.
[00193] In some modalities, the client devices 1210 and 1410 wait to receive video frames from each other for a certain amount of time and if they do not exchange video frames over that time, the alternative action is taken. For example, in some modalities, the video call is canceled and a message is displayed on the screens of client devices 1210 and 1410 that the video call could not be established. The video call can fail to set up for a number of reasons including the fact that the bandwidth is insufficient for the video call, the video frames have failed to transmit or have been received, etc. Although in some modalities, client devices wait for a single video frame before proceeding, in other modalities, client devices wait to receive numerous frames for a certain period of time (for example, a stream of video frames) before proceed.
[00194] In blocks 1830 and 1832, client devices 1210 and 1410 respectively transition to the video call. The transition to the video call includes viewing the video being received and changing the audio route from the circuit switched audio call to the video call. In some embodiments, the video preview (for example, the video preview 1310) moves to a corner of the screen (and shrinks in size) and the video being received from the point is described. Thus, it should be understood that until the audio route has been changed from the circuit switched audio call to the video call, participants can communicate via the circuit switched audio call (that is, the circuit call). circuit-switched audio remains established while the video call is being negotiated). After the transition to the video call, the circuit-switched audio call can be ended. In this way, the flow moves from blocks 1830 and 1832 to blocks 1834 and 1836 respectively, in which the circuit-switched audio call is ended.
[00195] Figures 15 and 16 illustrate client devices 1210 and 1410 respectively after they have been transitioned to the video call. As shown in figure 15, client device 1210 displays video 1510, which is video of what is being captured by the front facing camera 1460 from client device 1410. Client device 1210 also displays video 1515, which is the video of what is being captured by the 1260 forward facing camera. GUI 1505 also includes video end button 1520 and video end button 1625. Video end button 1520 allows the user to end the video call and return for an audio-only call. The 1525 end of video and call button allows the user to end the video call completely (for example, to end the conversation with the user on the 1410 client device). As shown in figure 16, client device 1410 displays video 1610, which is the video of what is being captured by the front facing camera 1260 from client device 1210. Client device 1410 also displays video 1615, which is the video of the which is being captured by the 1460 forward facing camera. GUI 1605 also includes the 1620 video end button and the 1625 video end and call button.
[00196] Figure 19 is a flowchart that illustrates exemplary operations performed on a client device that received a video call rejection message according to a modality. In block 1910, client device 1210 receives a video call rejection message (the user on client device 1410 has rejected the video call invitation). The stream moves from block 1910 to block 1912 and the client device 1210 displays a rejected video call message and optionally plays one or more audio tones that indicate receipt of the video call rejection message. The stream then moves to block 1914 where client device 1210 stops showing its own video preview. The client device 1210 can also request the user to return to the original audio output (for example, through the 1270 loudspeaker) if the audio output was previously changed to the speakerphone in block 1718.
[00197] Figure 20 is a flowchart that illustrates exemplary operations performed on a client device to make the transition from a video call to a circuit switched call according to a modality. A 2010 video call is established between client devices 1210 and 1410 (the video call can be established according to mechanisms described with reference to figures 17 and 18 or it can be established without making the transition from a circuit switched audio call. ). In block 1712, client device 1210 receives input to transition to a switched call by audio-only circuit. For example, with reference to figure 15, the user of the client device 1210 has selected the video end button 1520 (for example, when pressing or performing another predefined gesture on the video end button 1520). The client device 1210 then transmits a message to the client device 1410 indicating a transition to a 2014 audio-circuit switched call.
[00198] The client device 1210 then initiates a circuit-switched audio call request to the client device 1410 (for example, the client device 1210 automatically calls the number of the client device 1410). In some embodiments, this is done in the background and does not require user interaction. The call is routed through numerous network elements of the transport network infrastructure (for example, base stations, mobile switching centers, etc.).
[00199] The client device 1410 receives and answers the switched call by circuit 2020. In one embodiment, the client device 1410 displays an incoming call request and can play audio tones that indicate the incoming call request (for example, call waiting tones or other tones), and requires user intervention to answer the call. In another embodiment, the client device 1410 automatically answers the call without user intervention (and may or may not reproduce audio tones that indicate the incoming call request). After the call is answered, the audio-switched call is established 2030 between client devices 1210 and 1410.
[00200] After the switched audio-only call is successfully established, client devices 1210 and 1410 will transition to the audio-only call 2032 and 2034, respectively. For example, transitioning to the audio-only call includes changing the audio route from the video call to the circuit switched call, interrupting the display of the incoming video, and interrupting the video transmission. The client device can also stop displaying the video preview. Therefore, it should be understood that, while the circuit-switched audio-only call is being negotiated, users on client devices 1210 and 1410 can communicate via the video call (i.e., the video call remains established as long as the call is made). switched by audio-only circuit is negotiated). After successfully transitioning to an audio-only circuit switched call, client devices 1210 and 1410 terminate the P2P 2040 connection. Users on client devices 1210 and 1410 can then communicate through the circuit-switched call only. audio.
[00201] Although the modalities of the invention have been described in relation to a video call that has two participants, the modalities are not limited to this and there may be more participants in the video call. In such modalities, the client device can display multiple video streams from each different participant in the video conversation.
[00202] Although the modalities of the invention have been described in relation to a video call that has two participants where each participant transmits video, the modalities are not limited to this. For example, in some modalities, only a single party may be transmitting video to the other participant (s) and those other participant (s) may be transmitting only audio. In some modalities, each participant can determine when to suspend the video transmission at any point during the video call.
[00203] In some modalities, the quality of the video transmitted during the call is dynamically adjusted based on network conditions. For example, during periods when the network is congested, the bit rate of the video may be decreased. Similarly, during periods when the network is relatively congestion free, the bit rate of the video can be increased. In some modalities, if the network conditions prevent the video from being transmitted, the participating client devices automatically make the transition to a circuit-switched audio-only call. In this way, if the bandwidth drops below a certain level, the participating client devices can automatically transition to an audio-circuit switched call (or they can request the user to return to a circuit-switched call only) audio). Hands-Free Service Support via a Hands-Free Device for IP video calls
[00204] In one embodiment, client devices include functionality to support interaction with a hands-free device (for example, a headset, a car kit) over a WPAN (Wireless Personal Area Network) (for example , Bluetooth, ZigBee, etc.) including support for managing IP video calls with the handsfree unit. Fig. 32 is a block diagram illustrating a client device that interfaces with a hands-free unit to manage IP video calls according to a modality. The 3210 client device includes the ability to initiate video calls (for example, inviting one or more recipients to an online communication session that is a video call) and the ability to accept video calls. In some embodiments, the 3210 client device also includes cell phone components for making and receiving cell phone calls and / or accessing the Internet or another network over a cell phone connection.
[00205] As shown in figure 32, the 3210 client device includes the 3250 IP video call manager, the 3260 telephony manager, the 3275 audio manager and the 3270 handsfree manager. In some embodiments, the client device 3210 also includes the 3255 cell call manager. The 3250 IP video call manager manages a P2P video call application including establishing an IP P2P video call over the 3235 IP network via the service IP video call 3230 as previously described in this document. In one embodiment, the IP video calling service 3230 includes one or more of the invitation service 620, the push notification service 640, the registration service 630 and / or the registration service 2130, and the relay service 650. The 3255 cell call manager manages cell components to make and receive audio-only cell phone calls over a 3245 cell network using the 3240 cell audio call service.
[00206] The 3250 IP video call manager and the 3255 cell call manager are coupled to the 3260 telephony manager. The 3260 telephony manager manages telephony operations for the 3250 IP video call manager and the 3255 cell call manager including call history tracking (for video calls and audio-only cell calls) and other call related information. The 3260 telephony manager also interfaces with the 3270 handsfree manager to provide handsfree services via an external handsfree device for IP video calls and cellular calls on behalf of the 3250 IP video call manager and the 3255 cell call manager. In one embodiment, a common message format is used between the 3250 IP video call manager, the 3255 cell call manager, and the 3260 phone manager in order to provide provide support for hands-free services for different protocol and call types (IP video call and audio-only cell call). In this way, the 3260 telephony manager provides similar support for hands-free services regardless of whether hands-free services are for an IP video call or an audio-only cell call. This avoids the need for the 3270 handsfree manager to understand whether handsfree services are suitable for an IP video call or an audio-only cell call in such a way that standard commands that are understandable by the handsfree devices can be used to provide hands-free services for IP video calls as well as audio-only cell calls.
[00207] In one embodiment, the 3260 phone manager also arbitrates between the 3250 IP video call manager and the 3255 cell call manager. For example, the 3260 phone manager can cause a video call from IP to be put on hold to switch to an established audio-only cell call and / or to have an audio-only cell call to be put on hold to switch to an IP video call.
[00208] The 3270 handsfree manager provides support for handsfree processing. In one embodiment, the 3270 handsfree manager implements a Bluetooth protocol stack for connecting via Bluetooth to compatible handsfree devices such as a Bluetooth headset and Bluetooth car kit. In a specific modality, the 3270 handsfree manager deploys a Bluetooth headset profile (for example, as defined in the Headset Profile (HSP) 1.2 specification of December 18, 2008) and / or a handsfree profile from Bluetooth (for example, as defined in the Hands-Free Profile 1.5 (HFP 1.5) specification of November 25, 2005). The 3270 handsfree manager allows the 3220 handsfree unit to act as an audio relay for an IP video call and an audio-only cell phone call over a 3225 WPAN, as well as perform other handsfree services. For example, in the case of an IP video call, the audio portion of the call can be routed through the 3220 handsfree unit instead of a speaker on the 3210 client device while the video portion of the call remains displayed 3210 client device (or an attached display). The 3220 handsfree unit also includes a microphone to capture audio information that is then transmitted to the 3210 client computing device. In this way, a user can use the 3220 handsfree unit to speak and / or listen to audio during an IP video call and / or during an audio-only cell call.
[00209] The 3270 handsfree manager also supports other handsfree services that respond to incoming input from the 3220 handsfree unit including making one or more of the following for IP video calls and / or cell calls audio only: allow a user to answer a call; end a call; place a call and; mute a call; increase / decrease the volume of a call; transfer the audio to the client device; transfer the audio to the handsfree unit; establish a call; and redial the last call. In this way, a user can use the 3220 hands-free unit to answer an IP video call, end an IP video call, establish an IP video call on hold and / or mute, increase / decrease the volume of an IP video call, transfer audio from the IP video call to be output to a speaker on the 3210 client device, transfer audio from the 3210 client device to the 3220 handsfree unit, establish a video call and redial the last IP video call.
[00210] The 3250 IP video call manager, the 3255 cell call manager and the 3270 handsfree manager are also coupled to the 3275 audio manager. The 3275 audio manager routes the audio from IP video calls and audio-only cell phone calls from different sources. For example, the 3275 audio manager can cause audio to be output through a speaker on the 3210 client device suitable for speakerphone mode, through a speaker on the 3210 client device used when a user attaches the 3210 client device to your ear during a call, through a headset jack / jack to a headset or headset that is plugged into the 3210 client device, and through a level handsfree unit (such as the unit handsfree 3220).
[00211] Figure 33 illustrates the 3210 client device that receives an invitation for a video call, causing the handsfree to ring, receiving a response indication from the handsfree, which establishes the video call, and that routes the audio to the handsfree device according to a modality. Figure 33 will be described with reference to the exemplary modality of figure 32. However, it must be understood that the operations of figure 33 can be performed through modalities other than those discussed with reference to figure 32, and the modalities discussed with reference to figure 32 can perform operations different from those discussed with reference to figure 33.
[00212] In operation 3310, the IP video call manager 3250 receives an IP video call invitation from another client device that invites the user of the 3210 client device to participate in an IP video call. The IP video call invitation can take the form of the invitation as previously described in this document. The IP video call manager 3250 processes the invitation request including making the invitation appear in operation 3315. For example, the invitation request can be displayed in a similar way as the illustrated example video call invitation 1410 in figure 14.
[00213] In addition, the 3250 IP video call manager generates and transmits a 3320 call object to the 3260 telephony manager. The 3320 call object includes a set of parameters related to the call. For example, call object parameters include one or more call situations (for example, connection), and a call participant identifier (for example, the phone number, email address, or other online endpoint identifier for communication session), a start-up time, an indication of whether a call is made or received, and a call identifier used internally to identify the call.
[00214] In one embodiment, the 3320 call object is a generic call object which, although the parameters are used in the IP video call invitation information, is in a format that is common for call invitation requests from IP video and audio-only cell phone calls received. Thus, when receiving an incoming audio-only cell phone call, the 3255 cell call manager generates an incoming call object of the same format. Thus, from the perspective of the 3260 telephony manager, an IP video call invitation request or an incoming audio-only cell call appears to be the same.
[00215] The 3260 telephony manager stores the information in the 3320 call object as part of a call history structure. The 3260 phone manager also generates and sends a 3322 incoming call message to the 3270 handsfree manager. In one embodiment, the 3260 phone manager only sends the 3322 incoming call message if there is a handsfree device like the device 3220 handsfree is the same as the 3210 client device (for example, the 3260 telephony manager checks, first, if there is a handsfree device that is evaluated on the 3210 client device). In other modalities, the telephone manager 3260 sends the incoming call message 33220 to the handsfree manager 3270 regardless of whether there is an evaluated handsfree device and the handsfree manager 3270 determines whether to leave / ignore the message or process it. depending on whether there is an evaluated hands-free device. For the purposes of figure 33 and subsequent figures, it is assumed that the handsfree device 3220 is evaluated to the client computing device 3210. In one embodiment, the incoming call message 3322 includes the caller ID.
[00216] In response to receiving the incoming call message 3320, the 3270 handsfree manager causes a series of messages to be transmitted to the 3220 handsfree device alerting you and the user that there is a message received. As shown in figure 33, the handsfree manager establishes a 3325 audio connection (for example, a Oriented Synchronous Connection (SCO) link) with the 3220 handsfree device before sending a 3330 touch message over the connection established audio 3325. This ring message is selected by the 3210 client device and can be customizable by the user of the 3210 client device. In one embodiment, the ring message for IP video calls is different from the ring for cell phone calls. audio only. In another mode, an audio connection is not established until after the call is answered. In such an embodiment, a ring alert message is sent to the 3220 handsfree device, which then locally determines the ring tone to alert the user of the received message (the ring alert message can also be sent before send the ringing message 3330). In such a mode, the ring alert message can be sent multiple times to the 3220 handsfree until the call is answered or ended.
[00217] Some time after receiving the ring alert message and / or the ring message 3330, the handsfree device 3220 transmits the answered message 3335 which indicates that a user has answered the call. For example, the user pressed an answer button on their 3220 handsfree device or otherwise triggered the 3220 handsfree device to answer the call. The handsfree manager 3270 receives the answered message 3335 and transmits a answered message 3340 to the telephone manager 3260. In one embodiment, the answered message 3340 includes the caller ID. Although not shown in figure 33, the handsfree manager 3270 can also transmit an acknowledgment message to the handsfree device 3220 in response to receiving the answered message 3335.
[00218] The telephone manager 3260 determines that the answered call message 3340 belongs to the call indicated in the calling object 3320 (for example, when comparing the call identifier included in message 3340 to the stored information of the calling object 3320) and transmits a 3345 message to the 3250 IP video call manager that indicates that the call has been answered. In response to receiving this message, the IP video call manager 3250 establishes an IP video call in a 3350 operation. For example, the IP video call manager 3250 causes a call acceptance message from IP video is sent to an invitation service as previously described in this document and a P2P connection is established (either directly or via a retransmission) with the computing device that transmitted the invitation.
[00219] Sometime after the IP video call has been established, the IP video call manager 3250 transmits a 3355 call object to the 3260 phone manager. The 3355 call object includes a similar set of parameters to the 3320 call object with the exception that the situation has changed from connecting to connected. In one embodiment, the 3355 calling object is a generic calling object that is in a format that is common for established IP video calls and connected audio-only cell calls.
[00220] In addition, sometimes after the IP video call has been established, the 3275 audio manager routes the audio portion of the IP video call established through the 3220 handsfree device. In one embodiment, the manager IP video call 3250 or the 3260 telephony manager requests the 3275 audio manager to route audio through the handsfree. The 3275 audio manager can also transmit a 3360 message to the 3270 handsfree manager which indicates that the audio route will be changed to traverse the 3220 handsfree device. If an audio connection is not yet established, the hand manager 3270 handsfree will establish an audio connection to the 3220 handsfree device. Assuming there is an established audio connection, the 3365 audio portion of the video call is routed to the 3220 handsfree device. Thus, the audio portion of the video call is managed through the 3220 handsfree device while the video portion of the video call is displayed on the 3210 client device.
[00221] Figure 34 illustrates the client device 3210 that initiates a video call and routes the audio to the video call established through a hands-free device according to a modality. Figure 34 will be described with reference to the exemplary modality of figure 32. However, it should be understood that the operations of figure 34 can be performed by modalities other than those discussed with reference to figure 32, and the modalities discussed with reference to figure 32 may perform operations other than those discussed with reference to figure 34.
[00222] In operation 3410, the IP video call manager 3250 causes one or more IP video call invitation messages to be sent to the other client device (s) ( s) to invite the user (s) to an IP video call. The IP video call invitation message (s) may take the form of the invitation as previously described in this document. The 3250 IP video call manager generates and transmits a 3415 call object to the 3260 telephony manager. Similar to the 3320 call object, the 3415 call object includes a set of parameters in relation to the call and is in a format generic. The 3260 telephony manager stores the information in the 3415 call object as part of a call history structure.
[00223] In one embodiment, the telephone manager 3260 also generates and sends a call made message 3420 to the handsfree manager 3270 which indicates that there is a call made. In response to that message, the 3270 handsfree manager establishes a 3425 audio connection to the 3220 handsfree device (if a custom ringtone is to be sent) and then transmits a 3430 ringing message to the 3220 handsfree. In another mode, the 3270 handsfree manager transmits only a ring alert message to the 3220 handsfree device instead of establishing an audio connection and transmitting a band ring.
[00224] Some time after sending the IP video call invitation, the IP video call manager 3250 receives a 3435 IP video call acceptance message, which can take the form of a call acceptance message video as previously described in this document. After receiving this message, a P2P IP video call is established with the client device in the 3440 accept operation (for example, a P2P connection (either directly or via a retransmission) is established with the computing device that accepted it the invitation).
[00225] Sometime after the IP video call has been established, the IP video call manager 3250 transmits a 3445 call object to the 3260 phone manager. The 3445 call object includes a similar set of parameters such as the call object 3415 with the exception that the situation has changed from connecting to connected. The call object 3445 is also in a generic format. In addition, sometimes after the IP video call has been established, the 3275 audio manager routes the audio portion of the IP video call established through the 3220 handsfree device. IP 3250 video or 3260 telephony manager requests the 3275 audio manager to route audio through the handsfree. The 3275 audio manager can also transmit a 3455 message to the 3270 handsfree manager which indicates that the audio route will be changed to traverse the 3220 handsfree device. If an audio connection is not established, the hand manager 3270 handsfree will establish an audio connection to the 3220 handsfree device. Assuming that an audio connection is established, the 3460 audio portion of the video call is routed to the 3220 handsfree device. Video call audio is managed through the 3220 handsfree device while the video portion of the video call is displayed on the 3210 client device.
[00226] Figure 35 illustrates the client device 3210 that initiates a video call in response to the receipt of a call request from the handsfree device 3220 according to a modality. Figure 35 will be described with reference to the exemplary modality of figure 32. However, it should be understood that the operations of figure 35 can be performed by modalities other than those discussed with reference to figure 32, and the modalities discussed with reference to figure 32 may perform operations other than those discussed with reference to figure 35.
[00227] The 3270 handsfree manager receives a 3510 call request from the 3220 handsfree device. The 3510 call request can be generated in response to a user who selects a phone number or other online session endpoint identifier communication to be called. For example, the user can select a button to redial on the 3220 handsfree that requests that the last call be redialed. The 3270 handsfree manager transmits a 3520 call request message to the 3260 phone manager. The 3260 phone manager determines whether the 3520 call request message is requesting a call to an identifier that is associated with a video call. (and therefore the call request message should be sent to the IP 3250 video call manager) or associated with a phone number for an audio-only cell call (and therefore should be sent for the 3255 cell call manager). For example, in the event that the 3520 call request is a redial request, the telephone manager 3260 accesses the last dialed call, which can be an IP video call or an audio-only cell call, to determine where send the call request. As shown in figure 35, the telephony manager sends the call request message 3525 to the IP video call manager 3250. The call request message 3525 includes the participant identifier requested for the video call (for example , a phone number, an email address, or another online communication session endpoint identifier). In response to receiving the 3525 call request message, the IP video call manager 3250 causes an IP video call invitation message to be sent to the participant named in operation 3410 as described in figure 34. The remaining operations shown in figure 35 are performed as described with reference to figure 34. In this way, the client device 3210 supports the establishment of an IP video call as a result of user action on a pair hands-free device.
[00228] Figure 36 illustrates the client device 3210 that routes audio from a video call established to the handsfree device 3220 according to a modality. An IP video call 3610 is established between the 3210 client device and one or more other client devices. The audio portion of that call is currently emitted through a speaker on the 3210 client device or through headphones that are plugged into the 3210 client device. In operation 3615, the 3250 IP video call manager receives input to transfer audio to the 3220 handsfree device. For example, a user of the 3210 client device provided input to the IP video call application to transfer the audio to a pair handsfree device. In response to receiving such an entry, the IP 3250 video call manager sends a 3620 audio route request to the 3275 audio manager to route the audio portion of the video call through the 3220 handsfree. 3275 audio manager can transmit a 3625 message to the 3270 handsfree manager which indicates that the audio route will be changed to traverse the 3220 handsfree device. If an audio connection is not yet established, the 3270 handsfree manager establishes a 3630 audio connection to the 3220 handsfree device. Assuming that an audio connection is established, the audio portion 3635 of the video call is routed to the 3220 handsfree device. IP video being established, the 3210 client device allows the user to transfer the audio to a hands-free device.
[00229] Although figure 36 illustrates the transfer of an audio to a handsfree device in response to the receipt of a direct input on the client device, in other modalities, the user can cause the audio to be transferred to the handheld device 3220 hands-free via an input on the 3220 hands-free device. In such modalities, the 3270 hands-free manager receives a command from the 3220 hands-free device to transfer the audio. The 3270 handsfree manager then sends the request to the 3275 audio manager, which then routes the audio again.
[00230] In addition, although figure 36 illustrates the transfer of audio to a handsfree device, in some embodiments, audio can also be transferred from the handsfree device to a speaker (or headphones) of the 3210 client device This can be initiated on the 3210 client device and / or on the 3220 handsfree device. In such modalities, the 3275 audio manager receives the route audio request (either from the 3250 IP video call manager or the handsfree 3270) to route audio to the 3210 client device and act accordingly.
[00231] Figure 37 illustrates the 3210 client device that terminates a video call in response to receiving a call termination request from the 3220 handsfree device according to a modality. The 3270 handsfree manager receives a 3710 call termination message from the 3220 handsfree device in response to a user who selects to end a call (for example, an end button has been selected on the 3220 handsfree device) on the handset device. 3220 handsfree. The 3270 handsfree manager transmits the 3715 call termination request to the 3260 telephony manager. In one embodiment, the 3715 call termination request includes a caller ID to indicate which call to end (if there are multiple calls) calls). The 3260 telephony manager determines that the call to be terminated is associated with the 3250 IP video call manager and sends the 3720 call termination message to the 3250 IP video call manager. In response to receiving the call termination 3720, the IP video call manager 3250 causes the IP video call to end and causes the 3210 client device to disconnect from the P2P connection. In this way, the 3210 client device supports allowing the user to end an IP video call using a pair of handsfree device.
[00232] Figure 38 is a block diagram that illustrates an exemplifying computer system that can be used in some modalities. For example, the exemplary architecture of the 3800 computer system can be included on client devices 110, 1210, 1410, 2110, 2610, 3210, etc. or other computing devices described in this document. It should be understood that, although figure 38 illustrates various components of a computer system, it is not limited to representing any particular architecture or way of interconnecting the components since such details are not pertinent to the present invention. It will be noted that other computer systems that have few components or more components can also be used.
[00233] As illustrated in figure 38, the 3800 computer system, which is in the form of a data processing system, includes the 3850 bus (s) that are coupled to the 3820 processing system, to the supply of power 3825, memory 3830 and non-volatile memory 3840 (for example, a hard disk, flash memory, Phase Change Memory (PCM) etc.). The 3850 bus (s) can be connected to each other via various bridges, controllers, and / or adapters as is well known in the art. The 3820 processing system can retrieve instruction (s) from memory 30 and / or from non-volatile memory 3840, and execute instructions to perform operations as described above. The 3850 bus interconnects the above components together and also interconnects these components to the optional 3860 platform, the 3870 display controller & display device, 3880 Input / Output devices (for example, NIC (Network Interface Card) , a cursor control (for example, mouse, touchscreen, touchscreen, etc.), a keyboard, etc.), and the optional 3890 wireless transceiver (s) (for example, Bluetooth, WiFi, Infrared etc.).
[00234] Figure 39 is a block diagram that illustrates an exemplary data processing system that can be used in some modalities. For example, the 3900 data processing system can be a portable computer, a personal digital assistant (PDA), a mobile phone, a portable game system, a portable media player, a tablet or a portable computing device that can include a mobile phone, a media player, and / or a game system. As another example, the 3900 data processing system can be a network computer or a processing device embedded in another device.
[00235] According to one modality, the exemplary architecture of the 3900 data processing system can be included in client devices 110, 1210, 1410, 2110, 2610, 3210 etc. or other computing devices described in this document. The 3900 data processing system includes the 3920 processing system, which can include one or more microprocessors and / or a system on an integrated circuit. The 3920 processing system is coupled with a 3910 memory, a 3925 power supply (which includes one or more batteries), a 3940 audio input / output, a 3960 display device and controller, optional 3950 input / output, 3970 input device (s), and 3930 wireless transceiver (s). It will be noted that additional components, not shown in Figure 39, may also be part of the 3900 data processing system in certain embodiments, and in certain modalities, a smaller number of components than shown in figure 39 can be used. In addition, it will be noted that one or more busbars, not shown in figure 39, can be used to interconnect the various components as is well known in the art.
[00236] The 3910 memory can store data and / or programs for execution by the 3900 data processing system. The 3940 audio input / output can include a microphone and / or a speaker, for example, to play music and / or provide telephony functionality through the speaker and microphone. The 3960 display device and display controller may include a graphical user interface (GUI). Wireless transceivers (for example, RF) 3930 (for example, a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cell phone transceiver, etc.) can be used to communicate with other data processing systems . The one or more 3970 input devices allow a user to provide input to the system. These input devices can be a numeric keypad, keyboard, touch panel, multi-touch panel, etc. The other additional 3950 optional input / output can be a dock connector.
[00237] The techniques shown in the figures can be implemented using codes and data stored and executed on one or more computing devices (for example, client devices, servers, etc.). Such computing devices store and transmit (internally and / or with other computing devices over a network) codes (composed of software instructions) and data using machine-readable medium, as a non-transient, machine-readable medium. (for example, machine-readable storage medium such as magnetic disks; optical disks; read-only memory; flash memory devices) and transient propagation signals (for example, electrical, optical, acoustic or other forms of propagated signals - such as carrier waves, infrared signals, digital signals, etc.). In addition, such computing devices typically include a set of one or more processors coupled to one or more other components, such as one or more non-transient, machine-readable tangible medium (for storing codes and / or data), input / output devices user (for example, a keyboard, a touchscreen, and / or a display); and network connections (to transmit codes and / or data using transient propagation signals). The coupling of the set of processors and other components is typically done through one or more buses and bridges (also called bus controllers). Thus, a machine-readable, non-transitory medium for a given computing device typically stores instructions for execution on a set of one or more processors from that computing device. One or more parts of a modality can be implemented using different combinations of software, firmware and / or hardware.
[00238] Although the operations have been described in this document with reference to the automatic validation of an email address without requiring a user to click on a link included in a validation email address in relation to the validation of an email address for use as an online endpoint identifier for a communication session, the modalities are not limited. For example, in some modalities, the operations described with reference to the automatic validation of an electronic address are performed when an electronic address needs to be validated for other reasons. For example, a user may be registering a service that requires an email address to be validated as belonging to that user as part of the registration process. The user provides the e-mail address for the service and receives a message (for example, through the display of a service web page) indicating that the e-mail address needs to be validated and that a validation e-mail message has been sent or will be sent. sent to the email address that was provided (the validation email address message may or may not include a validation link). An application on the client device can automatically verify an email address account that corresponds to the email address for the validation message and when it is located, it automatically evaluates the message to locate the validation signal and transmit an email address validation message that includes the email address and the validation signal for an email address validation server associated with the service to validate the email address. Although the flowcharts in the figures show a particular order of operations performed by certain modalities, it must be understood that such an order is exemplary (for example, alternative modalities can perform operations in a different order, combine certain operations, overlap certain operations, etc. ).
[00239] Although the invention has been described in terms of several modalities, the person skilled in the art will recognize that the invention is not limited to the described modalities, and can be practiced with modifications and alterations in the spirit and scope of the embodiments. The description should therefore be considered illustrative rather than limiting.
权利要求:
Claims (13)
[0001]
1. Method for registering a client computing device for online communication sessions characterized by the fact that it comprises the steps of: receiving a message, which has a follow-up token that is unique to the client computing device and a phone number for that client computing device, from an SMS transit device (short message service) that received an SMS message that has the client computing device's token (push token) and that determined the device's phone number client computing; generate a signature based on one or more of the follow-up token and the phone number; transmitting a message including the signature, the continuation token and the telephone number to the SMS transit device for delivery to the client computing device; receiving a message having the signature, the continuation token and the telephone number from the client computer device; validate the follow-up token and the phone number received from the client computing device; associate the follow-up token and the phone number; and store the association.
[0002]
2. Method, according to claim 1, characterized by the fact that the message from the SMS transit device was transmitted in response to the energization of the client computing device and the automatic transmission of the SMS message that has the tracking token of the client computing device.
[0003]
3. Method according to claim 1, characterized by the fact that the continuation token uniquely identifies the client computing device and contains information that allows a continuation notification service to locate and transmit continuation notification messages to the device client computing.
[0004]
4. Method, according to claim 1, characterized by the fact that it additionally comprises providing the association between the continuation token and the phone number for an online communication session invitation service to be used when transmitting session invitations from online communication to the client computing device.
[0005]
5. Method according to claim 1, characterized by the fact that the SMS transit device is an SMS communication port or an SMS aggregator.
[0006]
6. Registration server for registering client computing devices for online communication sessions characterized by the fact that it comprises: an SMS transit interface (short message service) for receiving registration request messages from an SMS transit device that receives SMS messages from client computing devices, each registration request message including a follow-up token that is unique to a client computing device and a phone number for that computing device determined by the SMS transit device; and an association module for associating follow-up tokens and phone numbers and storing associated tokens and associated phone numbers in an online communication session record data store; a signature generation module to generate a signature for each pair of follow-up token and phone number received from the SMS transit device; and wherein the SMS transit interface for transmitting registration response messages to the SMS transit device, each registration response message including a signature, a follow-up token and telephone number for a client computing device; a client device interface for receiving registration validation request messages from client devices, each registration validation request message including a signature, continuation token and telephone number of a client computing device; and a validation module to validate follow-up tokens and phone numbers for customer computing devices before storing them in the online communication session record data store.
[0007]
7. Registration server according to claim 6, characterized by the fact that a continuation token uniquely identifies a client computing device and contains information that allows a continuation notification service to locate and transmit continuation notification messages for that client computing device.
[0008]
8. Registration server, according to claim 6, characterized by the fact that the SMS transit device is an SMS communication port or an SMS aggregator.
[0009]
9. Non-transitory machine-readable storage medium characterized by the fact that it provides instructions that, when executed by a processor, will cause said processor to perform a method for registering a client computing device for online communication sessions, as defined in any of claims 1 to 5.
[0010]
10. Online communication session registration system characterized by the fact that it comprises: an SMS transit device (short message service) that receives SMS messages from client computing devices that have tracking tokens from client computing devices and determines phone numbers of client computing devices from SMS messages, where the SMS transit device also transmits follow-up token pairs and phone number to a registration server; and the registry server associates tracking token pairs and phone number and stores the tracking tokens and associated phone numbers in an online communication session record data store and the record also generates a signature for each token pair tracking number and phone number received from the SMS transit device and transmits messages to the SMS transit device having a signature, tracking token and phone number to a client computing device.
[0011]
11. System according to claim 10, characterized by the fact that each continuation token uniquely identifies a client computing device and contains information that allows a continuation notification service to locate and transmit continuation notification messages to that device client computing.
[0012]
12. System, according to claim 10, characterized by the fact that the SMS transit device additionally transmits SMS messages to the client computing devices, each message having a signature generated by the registration server and a number of phone to that client computing device.
[0013]
13. System, according to claim 12, characterized by the fact that the registration server additionally receives messages from client computing devices, each message including a signature, a telephone number and a follow-up token; and wherein the registry server additionally validates the continuation token pairs and phone number received from the client computing devices based on the signature received from the client computing device and the signature generated on the registration server.
类似技术:
公开号 | 公开日 | 专利标题
BR112012025382B1|2021-04-27|METHOD FOR REGISTERING A CUSTOMER COMPUTING DEVICE FOR ONLINE COMMUNICATION SESSIONS, REGISTRATION SERVER FOR REGISTERING CUSTOMER COMPUTING DEVICES FOR ONLINE COMMUNICATION SESSIONS, NON-TRANSITIONAL MACHINE LEGIBLE STORAGE MEDIA AND SESSION ONLINE REGISTRATION SYSTEM
US8751667B2|2014-06-10|Supporting hands-free services via a hands-free device for IP video calls
US8606306B2|2013-12-10|Multiple client computing device invitations for online communication sessions
US8583149B2|2013-11-12|Registering email addresses for online communication sessions
同族专利:
公开号 | 公开日
BR112012025379A2|2016-06-28|
JP5833098B2|2015-12-16|
KR20130020785A|2013-02-28|
US20130231146A1|2013-09-05|
BR112012025358A2|2021-08-17|
WO2011126506A1|2011-10-13|
US9577976B2|2017-02-21|
DE112010005457T5|2013-01-17|
EP2556639A1|2013-02-13|
MX2012011624A|2012-11-30|
EP2556640B1|2015-10-21|
JP5596849B2|2014-09-24|
US8704863B2|2014-04-22|
BR112012025382A2|2016-06-28|
AU2010350743A1|2012-11-01|
US8725880B2|2014-05-13|
AU2010350741B2|2014-10-09|
EP2540052A1|2013-01-02|
MX2012011620A|2012-11-30|
AU2010350744B2|2014-12-04|
AU2010350744A1|2012-11-01|
TW201141190A|2011-11-16|
AU2010350741A1|2012-10-18|
ES2469852T3|2014-06-20|
WO2011126505A1|2011-10-13|
KR20130018288A|2013-02-20|
US20110249079A1|2011-10-13|
US20110252146A1|2011-10-13|
CN102859962A|2013-01-02|
KR101435309B1|2014-08-27|
EP2556640A1|2013-02-13|
DE112010005457B4|2018-10-04|
KR101453640B1|2014-10-22|
WO2011126503A1|2011-10-13|
JP5791056B2|2015-10-07|
JP2013529410A|2013-07-18|
US20110250909A1|2011-10-13|
US8948797B2|2015-02-03|
MX2012011622A|2012-11-30|
CN102859962B|2016-05-25|
AU2010350743B2|2014-10-30|
EP2556639B1|2021-03-03|
EP2540052B1|2014-03-05|
JP2013524683A|2013-06-17|
CN102893572B|2015-09-16|
KR20130020786A|2013-02-28|
JP2013525879A|2013-06-20|
US20150180822A1|2015-06-25|
GB201217440D0|2012-11-14|
CN102893572A|2013-01-23|
KR101436225B1|2014-09-01|
TWI551112B|2016-09-21|
US8423058B2|2013-04-16|
GB2495814B|2018-09-12|
GB2495814A|2013-04-24|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US351814A|1886-11-02|Safety water-gage |
US382479A|1888-05-08|lecouteux|
US321865A|1885-07-07|teg-gart |
US378926A|1888-03-06|Car-truck |
US321866A|1885-07-07|John v |
US321832A|1885-07-07|Wheel-felly |
US378924A|1887-11-03|1888-03-06|
JPH0260363A|1988-08-26|1990-02-28|Fujitsu Ltd|System for setting speech mode to communication terminal|
US8081969B2|2000-10-11|2011-12-20|Gogo Llc|System for creating an aircraft-based internet protocol subnet in an airborne wireless cellular network|
US5371534A|1992-07-23|1994-12-06|At&T Corp.|ISDN-based system for making a video call|
US5410543A|1993-01-04|1995-04-25|Apple Computer, Inc.|Method for connecting a mobile computer to a computer network by using an address server|
US7185054B1|1993-10-01|2007-02-27|Collaboration Properties, Inc.|Participant display and selection in video conference calls|
US20010025273A1|1997-12-22|2001-09-27|Jay Walker|Parallel data network billing and collection system|
JP3605263B2|1997-06-27|2004-12-22|株式会社日立製作所|Electronic conference system|
GB2338371A|1998-06-09|1999-12-15|Ibm|Voice processing system|
US6826616B2|1998-10-30|2004-11-30|Science Applications International Corp.|Method for establishing secure communication link between computers of virtual private network|
US7418504B2|1998-10-30|2008-08-26|Virnetx, Inc.|Agile network protocol for secure communications using secure domain names|
US6502135B1|1998-10-30|2002-12-31|Science Applications International Corporation|Agile network protocol for secure communications with assured system availability|
US6760746B1|1999-09-01|2004-07-06|Eric Schneider|Method, product, and apparatus for processing a data request|
US6684248B1|1999-05-03|2004-01-27|Certifiedmail.Com, Inc.|Method of transferring data from a sender to a recipient during which a unique account for the recipient is automatically created if the account does not previously exist|
AU6610300A|1999-07-28|2001-02-19|Terrance A. Tomkow|System and method for verifying delivery and integrity of electronic messages|
DE60113820T2|2000-02-14|2006-07-13|Motorola, Inc., Schaumburg|DEVICE FOR TRANSMITTING CHAT MESSAGES AND METHOD THEREFOR|
US8868769B2|2000-03-14|2014-10-21|Noah Prywes|System and method for obtaining responses to tasks|
GB2370188A|2000-11-01|2002-06-19|Orange Personal Comm Serv Ltd|Mixed-media telecommunication call set-up|
WO2003003653A2|2001-06-26|2003-01-09|Versada Networks, Inc.|Transcoding sms-based streamed messages to sip-based ip signals in wireless and wireline networks|
US8195940B2|2002-04-05|2012-06-05|Qualcomm Incorporated|Key updates in a mobile wireless system|
US6879828B2|2002-09-09|2005-04-12|Nokia Corporation|Unbroken primary connection switching between communications services|
WO2004063843A2|2003-01-15|2004-07-29|Matsushita Electric Industrial Co., Ltd.|PEER-TO-PEER CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR AT BOTH ENDS|
JP3990297B2|2003-01-29|2007-10-10|株式会社日立製作所|Response processing control method|
US7933263B1|2003-02-25|2011-04-26|Jds Uniphase Corporation|Analysis of VoIP data using incomplete call information|
US20040240650A1|2003-05-05|2004-12-02|Microsoft Corporation|Real-time communications architecture and methods for use with a personal computer system|
WO2004107135A2|2003-05-28|2004-12-09|Softek Software International, Inc.|Systems and methods for validating electronic communications|
DE60312332T2|2003-09-30|2008-01-10|Siemens Ag|RECEIVING SYSTEM, METHOD AND DEVICE|
AT539567T|2003-10-03|2012-01-15|Hewlett Packard Development Co|NETWORK AND METHOD FOR REGISTERING MOBILE DEVICES AND MANAGING MOBILE DEVICES|
WO2005051029A1|2003-11-19|2005-06-02|National Institute Of Information And Communications Technology, Independent Administrative Agency|Radio communication system|
US7620690B1|2003-11-20|2009-11-17|Lashback, LLC|Privacy control system for electronic communication|
JP4191016B2|2003-11-21|2008-12-03|日本電気株式会社|Phone terminal call mode switching method|
US8989737B2|2004-03-10|2015-03-24|Nokia Corporation|System and method for establishing a session initiation protocol communication session with a mobile terminal|
US7656870B2|2004-06-29|2010-02-02|Damaka, Inc.|System and method for peer-to-peer hybrid communications|
TWM264774U|2004-07-08|2005-05-11|Celltrend Internat Co Ltd|Combination of bluetooth earphone and bluetooth vehicle carrier|
CN100438688C|2004-08-27|2008-11-26|华为技术有限公司|System for session initial protocol user inserting mobile communication network and method thereof|
US20060068758A1|2004-09-30|2006-03-30|Abhay Dharmadhikari|Securing local and intra-platform links|
US20090247245A1|2004-12-14|2009-10-01|Andrew Strawn|Improvements in or Relating to Electronic Headset Devices and Associated Electronic Devices|
FR2880449B1|2004-12-31|2007-04-20|Charles Tuil|ELECTRONIC TRANSACTION METHOD BY MOBILE MESSAGING|
US8639629B1|2005-02-02|2014-01-28|Nexus Payments, LLC|System and method for accessing an online user account registry via a thin-client unique user code|
US20070002829A1|2005-06-17|2007-01-04|Su-Yuan Chang|Internet protocol voice logger|
US8065424B2|2005-07-15|2011-11-22|University Of Utah Research Foundation|System and method for data transport|
JP4156615B2|2005-08-22|2008-09-24|ソニー・エリクソン・モバイルコミュニケーションズ株式会社|Mobile phone, communication terminal, calling method and calling program|
CN100388685C|2005-08-30|2008-05-14|华为技术有限公司|Method of implementing IMS registration triggering in IP multimedia subsystem|
US8204064B2|2005-09-16|2012-06-19|Acme Packet, Inc.|Method and system of session media negotiation|
US7684797B2|2005-10-25|2010-03-23|Qualcomm Incorporated|Accessing telecommunication devices using mobile telephone numbers|
JP2007124486A|2005-10-31|2007-05-17|Toshiba Corp|Communication control method|
US8170189B2|2005-11-02|2012-05-01|Qwest Communications International Inc.|Cross-platform message notification|
US8532095B2|2005-11-18|2013-09-10|Cisco Technology, Inc.|Techniques configuring customer equipment for network operations from provider edge|
TWI301025B|2005-12-28|2008-09-11|Ind Tech Res Inst|Method for transmitting real-time streaming data and apparatus using the same|
EP1819124A1|2006-02-08|2007-08-15|BRITISH TELECOMMUNICATIONS public limited company|Automated user registration|
US20070253418A1|2006-04-27|2007-11-01|D.S.P. Group Ltd.|Routing path optimization between sip endpoints|
WO2007143795A1|2006-06-16|2007-12-21|Fmt Worldwide Pty Ltd|An authentication system and process|
CN101094171B|2006-06-22|2011-02-16|华为技术有限公司|Method and system for implementing interaction of media streams, controller of media gateway, and media gateway|
US8437757B2|2006-06-30|2013-05-07|Nokia Corporation|Systems for providing peer-to-peer communications|
JP2008060734A|2006-08-29|2008-03-13|Toshiba Corp|Portable terminal|
US7831522B1|2006-09-28|2010-11-09|Symantec Corporation|Evaluating relying parties|
JP2008097263A|2006-10-11|2008-04-24|Nec Corp|Authentication system, authentication method and service providing server|
US20080137642A1|2006-12-08|2008-06-12|Microsoft Corporation|Mobile device call to computing device|
JP4894532B2|2007-01-22|2012-03-14|ソニー株式会社|COMMUNICATION DEVICE, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM|
CN101242634B|2007-02-07|2012-05-23|华为技术有限公司|Service providing system, device and method|
GB2447059B|2007-02-28|2009-09-30|Secoren Ltd|Authorisation system|
JP2008219245A|2007-03-01|2008-09-18|Mitsubishi Electric Corp|Communication terminal device|
US7620413B2|2007-03-22|2009-11-17|Unication Co., Ltd.|Method for implementing push-to-talk over SIP and multicast RTP related system|
US20080254835A1|2007-04-10|2008-10-16|Sony Ericsson Mobile Communications Ab|System and method for a portable communication device to ...|
US20080301055A1|2007-05-31|2008-12-04|Microsoft Corporation| unified platform for reputation and secure transactions|
JP4886612B2|2007-06-12|2012-02-29|パナソニック株式会社|IP communication apparatus, IP communication method, and call control server|
KR101418357B1|2007-07-09|2014-07-14|삼성전자주식회사|Method and apparatus for peer to peer connection in wireless communication system|
EP2071809A1|2007-12-13|2009-06-17|Alcatel Lucent|Method of establishing a connection in a peer-to-peer network with network address translation |
US20090193507A1|2008-01-28|2009-07-30|Wael Ibrahim|Authentication messaging service|
NZ705828A|2008-02-13|2016-09-30|Picker Technologies Llc|Mobile system for improving the picking and preliminary processing of apples, citrus, stone fruit and like objects|
US8200819B2|2008-03-14|2012-06-12|Industrial Technology Research Institute|Method and apparatuses for network society associating|
US8776176B2|2008-05-16|2014-07-08|Oracle America, Inc.|Multi-factor password-authenticated key exchange|
JP2010009407A|2008-06-27|2010-01-14|Sony Corp|Information processor, data processing method, and program|
DE102008033849A1|2008-07-19|2010-01-21|Oerlikon Textile Gmbh & Co. Kg|Method for operating a spindle of a double-twisting or cabling machine|
US8675833B2|2008-10-22|2014-03-18|CentruryLink Intellectual Property LLC|System and method for managing messages|
WO2010090664A1|2009-02-05|2010-08-12|Wwpass Corporation|Centralized authentication system with safe private data storage and method|
US8214630B2|2009-02-24|2012-07-03|General Instrument Corporation|Method and apparatus for controlling enablement of JTAG interface|
KR101511193B1|2009-02-27|2015-04-10|파운데이션 프로덕션, 엘엘씨|Headset-based telecommunications platform|
US8555069B2|2009-03-06|2013-10-08|Microsoft Corporation|Fast-reconnection of negotiable authentication network clients|
JP5407482B2|2009-03-27|2014-02-05|ソニー株式会社|Information processing apparatus, information processing method, and program|
US8261329B2|2009-05-27|2012-09-04|International Business Machines Corporation|Trust and identity in secure calendar sharing collaboration|
US8495151B2|2009-06-05|2013-07-23|Chandra Bodapati|Methods and systems for determining email addresses|
US8621203B2|2009-06-22|2013-12-31|Nokia Corporation|Method and apparatus for authenticating a mobile device|
US8285317B2|2009-10-16|2012-10-09|Sony Mobile Communications Ab|Proactive application communications|
US20110126503A1|2009-11-20|2011-06-02|Corey Eugene Thurlow|Sickle Assembly|
US8423058B2|2010-04-07|2013-04-16|Apple Inc.|Registering client computing devices for online communication sessions|
US8451994B2|2010-04-07|2013-05-28|Apple Inc.|Switching cameras during a video conference of a multi-camera mobile device|
US8730294B2|2010-10-05|2014-05-20|At&T Intellectual Property I, Lp|Internet protocol television audio and video calling|
US8880107B2|2011-01-28|2014-11-04|Protext Mobility, Inc.|Systems and methods for monitoring communications|
US9148397B2|2011-12-19|2015-09-29|Facebook, Inc.|Messaging object generation for synchronous conversation threads|US7139565B2|2002-01-08|2006-11-21|Seven Networks, Inc.|Connection architecture for a mobile network|
US7548158B2|2005-08-08|2009-06-16|Telecommunication Systems, Inc.|First responder wireless emergency alerting with automatic callback and location triggering|
JP2011171809A|2010-02-16|2011-09-01|Sharp Corp|Communication terminal communication method and communication program|
US8769278B2|2010-04-07|2014-07-01|Apple Inc.|Apparatus and method for efficiently and securely exchanging connection data|
US8751667B2|2010-04-07|2014-06-10|Apple Inc.|Supporting hands-free services via a hands-free device for IP video calls|
US8583149B2|2010-04-07|2013-11-12|Apple Inc.|Registering email addresses for online communication sessions|
US8606306B2|2010-04-07|2013-12-10|Apple Inc.|Multiple client computing device invitations for online communication sessions|
US8451994B2|2010-04-07|2013-05-28|Apple Inc.|Switching cameras during a video conference of a multi-camera mobile device|
US8423058B2|2010-04-07|2013-04-16|Apple Inc.|Registering client computing devices for online communication sessions|
US8893296B2|2010-04-15|2014-11-18|Blackberry Limited|Mobile wireless communications device for validating access to an application based upon a validation request and related methods|
US8934892B2|2010-06-22|2015-01-13|Telefonaktiebolaget L M Ericsson |Methods and arrangements for direct mode communication|
US8576271B2|2010-06-25|2013-11-05|Microsoft Corporation|Combining direct and routed communication in a video conference|
US9622278B2|2010-10-26|2017-04-11|Kingston Digital Inc.|Dual-mode wireless networked device interface and automatic configuration thereof|
US8488575B2|2010-11-18|2013-07-16|At&T Intellectual Property, I, L.P.|Methods, devices, and computer program products for providing a plurality of application services via a customized private network connection|
US8838709B2|2010-12-17|2014-09-16|Silverpop Systems, Inc.|Anti-phishing electronic message verification|
US9323250B2|2011-01-28|2016-04-26|Intouch Technologies, Inc.|Time-dependent navigation of telepresence robots|
JP5905031B2|2011-01-28|2016-04-20|インタッチ テクノロジーズ インコーポレイテッド|Interfacing with mobile telepresence robot|
US8407776B2|2011-02-11|2013-03-26|Good Technology Corporation|Method, apparatus and system for provisioning a push notification session|
US8896652B2|2011-02-28|2014-11-25|Soryn Technologies Llc|System and method for real-time video communications|
US20130061289A1|2011-03-01|2013-03-07|Keith McFarland|Secure Messaging|
US9137191B2|2011-03-17|2015-09-15|Microsoft Technology Licensing, Llc|Messaging for notification-based clients|
US20120239782A1|2011-03-18|2012-09-20|Research In Motion Limited|Method and Apparatus Pertaining to Pushing Content Via A Push Proxy Gateway|
US8942384B2|2011-03-23|2015-01-27|Plantronics, Inc.|Dual-mode headset|
US9210557B2|2011-04-12|2015-12-08|Yahoo! Inc.|SMS-initiated mobile registration|
US9367224B2|2011-04-29|2016-06-14|Avaya Inc.|Method and apparatus for allowing drag-and-drop operations across the shared borders of adjacent touch screen-equipped devices|
US8971924B2|2011-05-23|2015-03-03|Apple Inc.|Identifying and locating users on a mobile network|
US10715380B2|2011-05-23|2020-07-14|Apple Inc.|Setting a reminder that is triggered by a target user device|
US9247377B2|2011-05-23|2016-01-26|Apple Inc.|Setting a reminder that is triggered by a target user device|
US8554855B1|2011-06-14|2013-10-08|Urban Airship, Inc.|Push notification delivery system|
US9531827B1|2011-06-14|2016-12-27|Urban Airship, Inc.|Push notification delivery system with feedback analysis|
US9325378B2|2011-06-14|2016-04-26|Broadcom Corporation|Computing device multiple display topology detection over radio|
US8731523B1|2011-06-14|2014-05-20|Urban Airship, Inc.|Push notification delivery system with feedback analysis|
US10237253B2|2011-09-09|2019-03-19|Kingston Digital, Inc.|Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server|
US9935930B2|2011-09-09|2018-04-03|Kingston Digital, Inc.|Private and secure communication architecture without utilizing a public cloud based routing server|
US10601810B2|2011-09-09|2020-03-24|Kingston Digital, Inc.|Private cloud routing server connection mechanism for use in a private communication architecture|
US9203807B2|2011-09-09|2015-12-01|Kingston Digital, Inc.|Private cloud server and client architecture without utilizing a routing server|
US9781087B2|2011-09-09|2017-10-03|Kingston Digital, Inc.|Private and secure communication architecture without utilizing a public cloud based routing server|
US9479344B2|2011-09-16|2016-10-25|Telecommunication Systems, Inc.|Anonymous voice conversation|
KR101240552B1|2011-09-26|2013-03-11|삼성에스디에스 주식회사|System and method for managing media keys and for transmitting/receiving peer-to-peer messages using the media keys|
KR20130033869A|2011-09-27|2013-04-04|삼성전기주식회사|Method and system for association between controller and device in home network|
US20130111047A1|2011-10-31|2013-05-02|Ncr Corporation|Session transfer|
US9998919B1|2011-11-18|2018-06-12|Google Llc|SMS spoofing protection|
JP5887507B2|2011-11-28|2016-03-16|パナソニックIpマネジメント株式会社|Method for establishing connection between communication devices, communication device, and server device|
US8984591B2|2011-12-16|2015-03-17|Telecommunications Systems, Inc.|Authentication via motion of wireless device movement|
US9681476B2|2011-12-20|2017-06-13|Intel Corporation|Wireless communication devices and methods for forming peer-to-peerwireless connections between devices|
JP5741854B2|2011-12-28|2015-07-01|ブラザー工業株式会社|COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM|
US9384339B2|2012-01-13|2016-07-05|Telecommunication Systems, Inc.|Authenticating cloud computing enabling secure services|
US9589541B2|2012-02-28|2017-03-07|Ebay Inc.|Location-based display of pixel history|
US9256457B1|2012-03-28|2016-02-09|Google Inc.|Interactive response system for hosted services|
WO2013153277A1|2012-04-10|2013-10-17|Nokia Corporation|Short message service mobile originated/mobile terminated without mobile station international subscriber directory numberin internet protocol multimedia subsystem |
US9338153B2|2012-04-11|2016-05-10|Telecommunication Systems, Inc.|Secure distribution of non-privileged authentication credentials|
CN103379044A|2012-04-26|2013-10-30|鸿富锦精密工业(深圳)有限公司|Network device and method for adjusting bandwidth dynamically thereof|
US9804759B2|2012-05-09|2017-10-31|Apple Inc.|Context-specific user interfaces|
WO2013176758A1|2012-05-22|2013-11-28|Intouch Technologies, Inc.|Clinical workflows utilizing autonomous and semi-autonomous telemedicine devices|
US9361021B2|2012-05-22|2016-06-07|Irobot Corporation|Graphical user interfaces including touchpad driving interfaces for telemedicine devices|
US8830295B2|2012-05-23|2014-09-09|Google Inc.|Multimedia conference endpoint transfer system|
US9071564B2|2012-06-07|2015-06-30|Apple Inc.|Data synchronization using mail and push notification services|
GB201210596D0|2012-06-14|2012-08-01|Microsoft Corp|Notification of communication events|
GB201210600D0|2012-06-14|2012-08-01|Microsoft Corp|Call invites|
GB201210598D0|2012-06-14|2012-08-01|Microsoft Corp|Notification of communication events|
GB2504461B|2012-06-14|2014-12-03|Microsoft Corp|Notification of communication events|
CN103401890B|2012-06-14|2017-03-01|微软技术许可有限责任公司|Apparatus and method for the notice of communication event|
US20150304491A1|2012-06-19|2015-10-22|Tribeca Mobile Innovations Inc.|Method providing a graphical user interface readout of the identification of a ringback tone on the incoming and outgoing call handsets|
US8830296B1|2012-06-26|2014-09-09|Google Inc.|Endpoint device-specific stream control for multimedia conferencing|
US20140032344A1|2012-07-27|2014-01-30|Wal-Mart Stores, Inc.|Push notification carrying receipt data|
CN103748943A|2012-08-17|2014-04-23|华为技术有限公司|User equipment pairing processing method, network side device, and user equipment|
KR101901919B1|2012-08-27|2018-09-27|삼성전자주식회사|Terminal and operation method for messenger video call service|
US20140059237A1|2012-08-27|2014-02-27|Apple Inc.|Scheduling and conducting a communication session with a remote agent|
US9276917B2|2012-09-11|2016-03-01|Blackberry Limited|Systems, devices and methods for authorizing endpoints of a push pathway|
US9261989B2|2012-09-13|2016-02-16|Google Inc.|Interacting with radial menus for touchscreens|
US9301191B2|2013-09-20|2016-03-29|Telecommunication Systems, Inc.|Quality of service to over the top applications used with VPN|
US9772668B1|2012-09-27|2017-09-26|Cadence Design Systems, Inc.|Power shutdown with isolation logic in I/O power domain|
US9020434B2|2012-10-25|2015-04-28|Intel Corporation|Wifi direct setup using out of band signaling|
KR101918760B1|2012-10-30|2018-11-15|삼성전자주식회사|Imaging apparatus and control method|
US9203838B2|2012-10-31|2015-12-01|Google Inc.|Providing network access to a device associated with a user account|
TWI483604B|2012-11-01|2015-05-01|Miiicasa Taiwan Inc|Method, system and network device for verifying locations of client devices|
US9094431B2|2012-11-01|2015-07-28|Miiicasa Taiwan Inc.|Verification of network device position|
US9992185B1|2012-11-02|2018-06-05|Wyse Technology L.L.C.|Virtual desktop accelerator support for network gateway|
US9374351B1|2012-11-02|2016-06-21|Wyse Technology L.L.C.|Virtual desktop accelerator support for network gateway|
US9485233B1|2012-11-02|2016-11-01|Wyse Technology L.L.C.|Virtual desktop accelerator support for network gateway|
US9634726B2|2012-11-02|2017-04-25|Google Inc.|Seamless tethering setup between phone and laptop using peer-to-peer mechanisms|
WO2014076578A2|2012-11-12|2014-05-22|Calgary Scientific Inc.|Framework to notify and invite users to join a collaborative session|
US9098611B2|2012-11-26|2015-08-04|Intouch Technologies, Inc.|Enhanced video interaction for a user interface of a telepresence network|
US9277176B2|2012-12-21|2016-03-01|Apple Inc.|Offloading a video portion of a video call|
US9276847B2|2013-01-02|2016-03-01|Acceleration Systems, LLC|Systems and methods for providing a ReNAT virtual private network|
CA2897105C|2013-01-02|2021-12-21|Richard Lee Mckinney|Systems and methods for providing a renat communications environment|
WO2014108182A1|2013-01-09|2014-07-17|Qatar Foundation|Storage system and method of storing and managing data|
GB2522373A|2013-01-09|2015-07-22|Qatar Foundation|Storage system and method of storing and managing data|
US8989773B2|2013-01-29|2015-03-24|Apple Inc.|Sharing location information among devices|
US20140256366A1|2013-03-06|2014-09-11|Barracuda Networks, Inc.|Network Traffic Control via SMS Text Messaging|
US9992021B1|2013-03-14|2018-06-05|GoTenna, Inc.|System and method for private and point-to-point communication between computing devices|
US9536232B2|2013-03-15|2017-01-03|Square, Inc.|Transferring money using email|
US9449321B2|2013-03-15|2016-09-20|Square, Inc.|Transferring money using email|
KR101497630B1|2013-04-05|2015-03-03|삼성에스디에스 주식회사|System and terminal for p2p connection in a mobile environment and method the same|
GB2505267B|2013-04-10|2015-12-23|Realvnc Ltd|Methods and apparatus for remote connection|
KR20140137616A|2013-05-23|2014-12-03|삼성전자주식회사|Mobile terminal and method for controlling multilateral conversation|
US10021180B2|2013-06-04|2018-07-10|Kingston Digital, Inc.|Universal environment extender|
WO2014198745A1|2013-06-12|2014-12-18|Telecom Italia S.P.A.|Mobile device authentication in heterogeneous communication networks scenario|
US8838836B1|2013-06-25|2014-09-16|Actiontec Electronics, Inc.|Systems and methods for sharing digital information between mobile devices of friends and family using multiple LAN-based embedded devices|
US9525991B2|2013-06-25|2016-12-20|Actiontec Electronics, Inc.|Systems and methods for sharing digital information between mobile devices of friends and family using embedded devices|
US10547651B2|2013-07-26|2020-01-28|Apple Inc.|System and method for providing telephony services over WiFi for non-cellular devices|
US9615222B2|2013-08-05|2017-04-04|GTA Wireless Direct Ltd.|System and method for simplifying mobile device account creation and verification|
CN103414565B|2013-08-08|2016-12-28|天地融科技股份有限公司|Output intent and safety equipment, response method and system, execution method and system|
KR20150019113A|2013-08-12|2015-02-25|삼성전자주식회사|Display appatatus, communication terminal device and method for a voice call using thereof|
US9961608B2|2013-08-19|2018-05-01|Microsoft Technology Licensing, Llc|Seamless call transitions|
US9888210B2|2013-08-19|2018-02-06|Microsoft Technology Licensing, Llc|Seamless call transitions with pinpoint call escalation|
US9681095B2|2013-08-19|2017-06-13|Microsoft Technology Licensing, Llc|Seamless call transitions with pre-escalation participation confirmation|
CN104427287B|2013-08-20|2018-01-02|联想有限公司|Data processing method and equipment|
CN104469243A|2013-09-13|2015-03-25|联想有限公司|Communication method and electronic equipment|
KR20150032011A|2013-09-17|2015-03-25|엘지전자 주식회사|Electronic device and control method thereof|
CN104518949A|2013-09-27|2015-04-15|北京新媒传信科技有限公司|Method and system for message prompt|
US9378491B1|2013-10-15|2016-06-28|Square, Inc.|Payment transfer by sending E-mail|
WO2015088217A1|2013-12-09|2015-06-18|Lg Electronics Inc.|A receiver and a method for processing a broadcast signal including a broadcast content and an application related to the broadcast content|
US9740777B2|2013-12-20|2017-08-22|Ebay Inc.|Systems and methods for saving and presenting a state of a communication session|
KR101455365B1|2013-12-24|2014-10-27|주식회사 케이티|Apparatus and method for transmitting data of video confference|
USD753145S1|2013-12-30|2016-04-05|Samsung Electronics Co., Ltd.|Display screen or portion thereof with icon|
US9210129B2|2014-02-06|2015-12-08|Acceleration Systems, LLC|Systems and methods for providing a multiple secure link architecture|
US9549028B2|2014-02-18|2017-01-17|Ebay Inc.|Systems and methods for automatically saving a state of a communication session|
US9955323B2|2014-03-10|2018-04-24|Tracfone Wireless, Inc.|System and method for modifying settings on wireless devices|
US9265079B2|2014-03-13|2016-02-16|Microsoft Technology Licensing, Llc|Authentication and pairing of devices using a machine readable code|
US10284813B2|2014-03-17|2019-05-07|Microsoft Technology Licensing, Llc|Automatic camera selection|
US9749585B2|2014-03-17|2017-08-29|Microsoft Technology Licensing, Llc|Highlighting unread messages|
US10178346B2|2014-03-17|2019-01-08|Microsoft Technology Licensing, Llc|Highlighting unread messages|
US9888207B2|2014-03-17|2018-02-06|Microsoft Technology Licensing, Llc|Automatic camera selection|
JP6287401B2|2014-03-18|2018-03-07|富士ゼロックス株式会社|Relay device, system and program|
US20150281461A1|2014-03-28|2015-10-01|International Business Machines Corporation|Dynamic notification during a teleconference|
US8917311B1|2014-03-31|2014-12-23|Apple Inc.|Establishing a connection for a video call|
USD769274S1|2014-04-21|2016-10-18|Square, Inc.|Display screen with a graphical user interface|
USD763882S1|2014-04-25|2016-08-16|Tencent TechnologyCompany Limited|Portion of a display screen with animated graphical user interface|
USD770488S1|2014-04-30|2016-11-01|Tencent TechnologyCompany Limited|Portion of a display screen with graphical user interface|
USD770487S1|2014-04-30|2016-11-01|Tencent TechnologyCompany Limited|Display screen or portion thereof with graphical user interface|
JP6372156B2|2014-05-13|2018-08-15|株式会社リコー|Connection control system, communication terminal, communication system, program, and connection control method|
US9712623B2|2014-05-30|2017-07-18|Apple Inc.|Answering a call with client through a host|
US10382378B2|2014-05-31|2019-08-13|Apple Inc.|Live location sharing|
CN104090537A|2014-06-10|2014-10-08|东莞市麦蒂科技有限公司|Wireless base station apparatus for industrial production line|
EP3584671A1|2014-06-27|2019-12-25|Apple Inc.|Manipulation of calendar application in device with touch screen|
US9473737B1|2014-07-03|2016-10-18|Securus Technologies, Inc.|On-demand video communication for controlled-environment facility residents|
CN106797415A|2014-09-02|2017-05-31|苹果公司|Telephone user interface|
US9967345B2|2014-10-03|2018-05-08|Mobitv, Inc.|Split screen teleconferencing|
US10348951B2|2014-10-15|2019-07-09|Mobitv, Inc.|Camera capture for connected devices|
US20160255127A1|2015-02-26|2016-09-01|Microsoft Technology Licensing, Llc|Directing Meeting Entrants Based On Meeting Role|
US9197745B1|2015-03-25|2015-11-24|Captioncall, Llc|Communication device and related methods for automatically connecting to a captioning communication service to receive text captions following an interruption during a call|
US9980304B2|2015-04-03|2018-05-22|Google Llc|Adaptive on-demand tethering|
KR20170139541A|2015-04-22|2017-12-19|히로시 이나모|Information processing system|
US10237236B2|2015-06-25|2019-03-19|Microsoft Technology Licensing, Llc|Media Session|
CN110855807A|2015-06-30|2020-02-28|华为终端有限公司|Method and equipment for adding contact person|
CN106470215B|2015-08-14|2020-10-09|腾讯科技(深圳)有限公司|User terminal, server, and message pushing system and method for scene not concerned|
US10127532B1|2015-08-19|2018-11-13|Square, Inc.|Customized transaction flow|
US10410194B1|2015-08-19|2019-09-10|Square, Inc.|Customized tipping flow|
CN106470149B|2015-08-20|2020-04-21|腾讯科技(深圳)有限公司|Message sending method and device|
GB2541661B|2015-08-24|2021-10-27|Metaswitch Networks Ltd|Data communications|
CN105208014B|2015-08-31|2018-09-25|腾讯科技(深圳)有限公司|A kind of voice communication processing method, electronic equipment and system|
US10075482B2|2015-09-25|2018-09-11|International Business Machines Corporation|Multiplexed, multimodal conferencing|
KR101654479B1|2015-09-25|2016-09-05|라인 가부시키가이샤|Method and system for efficient call processing|
KR20170049897A|2015-10-29|2017-05-11|삼성전자주식회사|Electronic device and method for setting software in electronic device|
CN105430654B|2015-10-30|2018-12-11|小米科技有限责任公司|The recognition methods of the attaching information of number and device|
US10156841B2|2015-12-31|2018-12-18|General Electric Company|Identity management and device enrollment in a cloud service|
US10044705B2|2016-01-20|2018-08-07|Facebook, Inc.|Session management for internet of things devices|
US10218701B2|2016-03-09|2019-02-26|Avaya Inc.|System and method for securing account access by verifying account with email provider|
US10148759B2|2016-04-04|2018-12-04|Gogo Llc|Presence-based network authentication|
CN106027494A|2016-04-29|2016-10-12|深圳市永兴元科技有限公司|Authority management method, server and system|
AU2017100667A4|2016-06-11|2017-07-06|Apple Inc.|Activity and workout updates|
US10511569B2|2016-08-15|2019-12-17|Facebook, Inc.|Techniques for providing multi-modal multi-party calling|
US10581936B2|2016-09-15|2020-03-03|Ricoh Company, Ltd.|Information processing terminal, management system, communication system, information processing method, and recording medium|
US10860199B2|2016-09-23|2020-12-08|Apple Inc.|Dynamically adjusting touch hysteresis based on contextual data|
US10630682B1|2016-11-23|2020-04-21|Amazon Technologies, Inc.|Lightweight authentication protocol using device tokens|
US10129223B1|2016-11-23|2018-11-13|Amazon Technologies, Inc.|Lightweight encrypted communication protocol|
EP3349410B1|2017-01-11|2021-03-10|Tata Consultancy Services Limited|Method and system for executing a transaction request using a communication channel|
CN108512876B|2017-02-27|2020-11-10|腾讯科技(深圳)有限公司|Data pushing method and device|
US11038870B2|2017-03-09|2021-06-15|Microsoft Technology Licensing, Llc|Quick responsecode for secure provisioning|
CN107277422B|2017-07-27|2020-07-03|北京小米移动软件有限公司|Video call method, device and system|
US10372298B2|2017-09-29|2019-08-06|Apple Inc.|User interface for multi-user communication session|
KR101965307B1|2017-10-31|2019-04-03|삼성에스디에스 주식회사|Message processing apparatus|
US10693921B2|2017-11-03|2020-06-23|Futurewei Technologies, Inc.|System and method for distributed mobile network|
CN108255971A|2017-12-26|2018-07-06|北京百度网讯科技有限公司|The data processing method and device of data center, computer equipment and readable medium|
CN108600037B|2018-01-22|2021-12-03|来邦科技股份公司|Equipment online identification method, electronic equipment, system and storage medium|
CN110278401A|2018-03-16|2019-09-24|优酷网络技术(北京)有限公司|Video call method and device|
DK201870364A1|2018-05-07|2019-12-03|Apple Inc.|Multi-participant live communication user interface|
US10944562B2|2018-06-03|2021-03-09|Apple Inc.|Authenticating a messaging program session|
US11128792B2|2018-09-28|2021-09-21|Apple Inc.|Capturing and displaying images with multiple focal planes|
US11233784B2|2019-05-06|2022-01-25|Blackberry Limited|Systems and methods for managing access to shared network resources|
US11166135B2|2019-05-31|2021-11-02|Apple Inc.|Registering and associating multiple user identifiers for a service on a device|
US11158028B1|2019-10-28|2021-10-26|Snap Inc.|Mirrored selfie|
US11079913B1|2020-05-11|2021-08-03|Apple Inc.|User interface for status indicators|
US11172003B1|2020-09-17|2021-11-09|Accenture Global Solutions Limited|System and method to control a media client using a message service|
法律状态:
2019-01-08| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2020-01-14| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2020-03-10| B15K| Others concerning applications: alteration of classification|Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 29/06 , H04L 29/12 Ipc: H04L 29/06 (2006.01), H04M 7/00 (2006.01), H04W 4/ |
2021-03-30| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2021-04-27| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 27/04/2021, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US32186610P| true| 2010-04-07|2010-04-07|
US32186510P| true| 2010-04-07|2010-04-07|
US61/321,866|2010-04-07|
US61/321,865|2010-04-07|
US35181410P| true| 2010-06-04|2010-06-04|
US61/351,814|2010-06-04|
US37892410P| true| 2010-08-31|2010-08-31|
US37892610P| true| 2010-08-31|2010-08-31|
US38247910P| true| 2010-09-13|2010-09-13|
US61/382,479|2010-09-13|
US12/886,479|US8423058B2|2010-04-07|2010-09-20|Registering client computing devices for online communication sessions|
US12/886,479|2010-09-21|
PCT/US2010/050064|WO2011126503A1|2010-04-07|2010-09-23|Method and device for registering client computing devices for online communication sessions|
[返回顶部]